Guest User

Untitled

a guest
Apr 26th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.03 KB | None | 0 0
  1. import android.content.BroadcastReceiver;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. import android.content.IntentFilter;
  5. import android.net.wifi.ScanResult;
  6. import android.net.wifi.WifiManager;
  7. import android.net.wifi.p2p.WifiP2pDevice;
  8. import android.net.wifi.p2p.WifiP2pDeviceList;
  9. import android.net.wifi.p2p.WifiP2pManager;
  10. import android.support.v7.app.AppCompatActivity;
  11. import android.os.Bundle;
  12. import android.util.Log;
  13. import android.widget.Toast;
  14.  
  15. import java.util.ArrayList;
  16. import java.util.Collection;
  17. import java.util.List;
  18. import java.util.Map;
  19.  
  20. public class MainActivity extends AppCompatActivity {
  21.  
  22. private WifiP2pManager manager;
  23. private WifiP2pManager.Channel channel;
  24. private String number = "";
  25. WifiManager wifi;
  26. List<ScanResult> results;
  27. @Override
  28. protected void onCreate(Bundle savedInstanceState) {
  29. super.onCreate(savedInstanceState);
  30. setContentView(R.layout.activity_main);
  31. String tempNumber= number;
  32. // tempNumber = tempNumber.substring(1);
  33. wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
  34. IntentFilter wifiP2PFilter = new IntentFilter();
  35. wifiP2PFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
  36. wifiP2PFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
  37. wifiP2PFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
  38. wifiP2PFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
  39. this.registerReceiver(broadCastReceiver,wifiP2PFilter);
  40. manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
  41. registerReceiver(new BroadcastReceiver()
  42. {
  43. @Override
  44. public void onReceive(Context c, Intent intent)
  45. {
  46. WifiP2pDevice device = intent.getParcelableExtra(WifiP2pManager.EXTRA_WIFI_P2P_DEVICE);
  47. // String thisDeviceName = device.deviceName;
  48. results = wifi.getScanResults();
  49. // Log.d("+++++++",""+thisDeviceName);
  50. // results.get(0).toString();
  51. for(int i = 0; i < results.size(); i++){
  52. String info = ((results.get(i)).toString());
  53.  
  54. }
  55. int size = results.size();
  56. }
  57. }, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
  58. wifi.startScan();
  59. channel = manager.initialize(this, getMainLooper(), null);
  60. final List<WifiP2pDevice> peers = new ArrayList<WifiP2pDevice>();
  61.  
  62. manager.requestPeers(channel, new WifiP2pManager.PeerListListener() {
  63. @Override
  64. public void onPeersAvailable(WifiP2pDeviceList wifiP2pDeviceList) {
  65. Toast.makeText(MainActivity.this,"Peers available" + wifiP2pDeviceList.getDeviceList().size(),Toast.LENGTH_LONG).show();
  66. // List<WifiP2pDeviceList> wifiP2pDeviceLists = new ArrayList<>();
  67. Collection<WifiP2pDevice> refreshedPeers = wifiP2pDeviceList.getDeviceList();
  68. peers.clear();
  69. peers.addAll(refreshedPeers);
  70.  
  71. // wifiP2pDeviceLists.add(wifiP2pDeviceList.getDeviceList());
  72. if(peers.size()>0) {
  73. Log.d("++++++++device info", "" + peers.get(0).deviceName);
  74. Log.d("++++++++device info", "" + peers.get(0).deviceAddress);
  75. }
  76. for(int i=0;i<wifiP2pDeviceList.getDeviceList().size();i++) {
  77. // Log.d("++++++++", wifiP2pDeviceList.get(i).toString() );
  78. }
  79. }
  80. });
  81. manager.discoverPeers(channel, new WifiP2pManager.ActionListener() {
  82. @Override
  83. public void onSuccess() {
  84. Toast.makeText(MainActivity.this,"Peers discovered",Toast.LENGTH_LONG).show();
  85.  
  86. }
  87.  
  88. @Override
  89. public void onFailure(int i) {
  90.  
  91. }
  92. });
  93.  
  94. WifiP2pManager.PeerListListener peerListListener = new WifiP2pManager.PeerListListener() {
  95. @Override
  96. public void onPeersAvailable(WifiP2pDeviceList wifiP2pDeviceList) {
  97. Toast.makeText(MainActivity.this,"Peers available",Toast.LENGTH_LONG).show();
  98. List peers = new ArrayList();
  99. peers.addAll(wifiP2pDeviceList.getDeviceList());
  100. for(int i=0;i<peers.size();i++) {
  101. Log.d("++++++++++","" + peers.get(i).toString());
  102. }
  103.  
  104. // wifiP2pDeviceList.getDeviceList();
  105. }
  106. };
  107. WifiP2pManager.DnsSdServiceResponseListener dnsSdServiceResponseListener = new WifiP2pManager.DnsSdServiceResponseListener() {
  108. @Override
  109. public void onDnsSdServiceAvailable(String s, String s1, WifiP2pDevice wifiP2pDevice) {
  110.  
  111. }
  112. };
  113. WifiP2pManager.DnsSdTxtRecordListener recordListener = new WifiP2pManager.DnsSdTxtRecordListener() {
  114. @Override
  115. public void onDnsSdTxtRecordAvailable(String s, Map<String, String> map, WifiP2pDevice wifiP2pDevice) {
  116. Toast.makeText(MainActivity.this,"DnsSdTxtRecords",Toast.LENGTH_LONG).show();
  117. }
  118. };
  119. manager.setDnsSdResponseListeners(channel,dnsSdServiceResponseListener,recordListener);
  120. }
  121.  
  122. BroadcastReceiver broadCastReceiver = new BroadcastReceiver() {
  123. @Override
  124. public void onReceive(Context context, Intent intent) {
  125. WifiP2pDevice device = intent.getParcelableExtra(WifiP2pManager.EXTRA_WIFI_P2P_DEVICE);
  126. if(device!=null) {
  127. String thisDeviceName = device.deviceName;
  128. results = wifi.getScanResults();
  129. Log.d("+++++++", "" + thisDeviceName);
  130. manager.requestPeers(channel, new WifiP2pManager.PeerListListener() {
  131. @Override
  132. public void onPeersAvailable(WifiP2pDeviceList wifiP2pDeviceList) {
  133. Log.d("+++++++", "" + wifiP2pDeviceList.getDeviceList().size());
  134. }
  135. });
  136.  
  137. }
  138. }
  139. };
  140.  
  141.  
  142. }
Add Comment
Please, Sign In to add comment