Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.content.IntentFilter;
- import android.net.wifi.ScanResult;
- import android.net.wifi.WifiManager;
- import android.net.wifi.p2p.WifiP2pDevice;
- import android.net.wifi.p2p.WifiP2pDeviceList;
- import android.net.wifi.p2p.WifiP2pManager;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.widget.Toast;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- import java.util.Map;
- public class MainActivity extends AppCompatActivity {
- private WifiP2pManager manager;
- private WifiP2pManager.Channel channel;
- private String number = "";
- WifiManager wifi;
- List<ScanResult> results;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- String tempNumber= number;
- // tempNumber = tempNumber.substring(1);
- wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
- IntentFilter wifiP2PFilter = new IntentFilter();
- wifiP2PFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
- wifiP2PFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
- wifiP2PFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
- wifiP2PFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
- this.registerReceiver(broadCastReceiver,wifiP2PFilter);
- manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
- registerReceiver(new BroadcastReceiver()
- {
- @Override
- public void onReceive(Context c, Intent intent)
- {
- WifiP2pDevice device = intent.getParcelableExtra(WifiP2pManager.EXTRA_WIFI_P2P_DEVICE);
- // String thisDeviceName = device.deviceName;
- results = wifi.getScanResults();
- // Log.d("+++++++",""+thisDeviceName);
- // results.get(0).toString();
- for(int i = 0; i < results.size(); i++){
- String info = ((results.get(i)).toString());
- }
- int size = results.size();
- }
- }, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
- wifi.startScan();
- channel = manager.initialize(this, getMainLooper(), null);
- final List<WifiP2pDevice> peers = new ArrayList<WifiP2pDevice>();
- manager.requestPeers(channel, new WifiP2pManager.PeerListListener() {
- @Override
- public void onPeersAvailable(WifiP2pDeviceList wifiP2pDeviceList) {
- Toast.makeText(MainActivity.this,"Peers available" + wifiP2pDeviceList.getDeviceList().size(),Toast.LENGTH_LONG).show();
- // List<WifiP2pDeviceList> wifiP2pDeviceLists = new ArrayList<>();
- Collection<WifiP2pDevice> refreshedPeers = wifiP2pDeviceList.getDeviceList();
- peers.clear();
- peers.addAll(refreshedPeers);
- // wifiP2pDeviceLists.add(wifiP2pDeviceList.getDeviceList());
- if(peers.size()>0) {
- Log.d("++++++++device info", "" + peers.get(0).deviceName);
- Log.d("++++++++device info", "" + peers.get(0).deviceAddress);
- }
- for(int i=0;i<wifiP2pDeviceList.getDeviceList().size();i++) {
- // Log.d("++++++++", wifiP2pDeviceList.get(i).toString() );
- }
- }
- });
- manager.discoverPeers(channel, new WifiP2pManager.ActionListener() {
- @Override
- public void onSuccess() {
- Toast.makeText(MainActivity.this,"Peers discovered",Toast.LENGTH_LONG).show();
- }
- @Override
- public void onFailure(int i) {
- }
- });
- WifiP2pManager.PeerListListener peerListListener = new WifiP2pManager.PeerListListener() {
- @Override
- public void onPeersAvailable(WifiP2pDeviceList wifiP2pDeviceList) {
- Toast.makeText(MainActivity.this,"Peers available",Toast.LENGTH_LONG).show();
- List peers = new ArrayList();
- peers.addAll(wifiP2pDeviceList.getDeviceList());
- for(int i=0;i<peers.size();i++) {
- Log.d("++++++++++","" + peers.get(i).toString());
- }
- // wifiP2pDeviceList.getDeviceList();
- }
- };
- WifiP2pManager.DnsSdServiceResponseListener dnsSdServiceResponseListener = new WifiP2pManager.DnsSdServiceResponseListener() {
- @Override
- public void onDnsSdServiceAvailable(String s, String s1, WifiP2pDevice wifiP2pDevice) {
- }
- };
- WifiP2pManager.DnsSdTxtRecordListener recordListener = new WifiP2pManager.DnsSdTxtRecordListener() {
- @Override
- public void onDnsSdTxtRecordAvailable(String s, Map<String, String> map, WifiP2pDevice wifiP2pDevice) {
- Toast.makeText(MainActivity.this,"DnsSdTxtRecords",Toast.LENGTH_LONG).show();
- }
- };
- manager.setDnsSdResponseListeners(channel,dnsSdServiceResponseListener,recordListener);
- }
- BroadcastReceiver broadCastReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- WifiP2pDevice device = intent.getParcelableExtra(WifiP2pManager.EXTRA_WIFI_P2P_DEVICE);
- if(device!=null) {
- String thisDeviceName = device.deviceName;
- results = wifi.getScanResults();
- Log.d("+++++++", "" + thisDeviceName);
- manager.requestPeers(channel, new WifiP2pManager.PeerListListener() {
- @Override
- public void onPeersAvailable(WifiP2pDeviceList wifiP2pDeviceList) {
- Log.d("+++++++", "" + wifiP2pDeviceList.getDeviceList().size());
- }
- });
- }
- }
- };
- }
Add Comment
Please, Sign In to add comment