Android Список Wi-Fi Direct peer остается пустым? - PullRequest
0 голосов
/ 05 марта 2020

У меня очень запутанная проблема. Если я использую Wifi Direct в опциях android, он работает отлично, и я могу обнаружить все другие устройства, которые используют Wifi Direct. Но если я использую свое приложение, оно не обновляет мой список.

Основная активность:

    PeerListListener peerListListener =  new PeerListListener()
    {
        @Override
        public void onPeersAvailable(WifiP2pDeviceList peerList)
        {
            if(!peerList.getDeviceList().equals(peers))
            {
                peers.clear();
                peers.addAll(peerList.getDeviceList());

                deviceNameArray = new String[peerList.getDeviceList().size()];
                deviceArray = new WifiP2pDevice[peerList.getDeviceList().size()];

                index = 0;

                for(WifiP2pDevice device : peerList.getDeviceList())
                {
                    deviceNameArray[index] = device.deviceName;
                    deviceArray[index] = device;
                    index++;
                }

                ArrayAdapter<String> adapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, deviceNameArray);
                lstView.setAdapter(adapter);
            }
            if(peers.size() == 0)
            {
                Toast.makeText(getApplicationContext(), "no Devices found", Toast.LENGTH_SHORT).show();
            }
        }
    };

BroadcastReceiver:

else if(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action))
        {
            if(p2pManager != null)
            {
                p2pManager.requestPeers(p2pChannel, p2pActivity.peerListListener);
            }
        }

Я отладил его, и проблема в том, , что "peerList" пусто. For for l oop ничего не добавляет в мой список, потому что нечего добавить в "peerList". Я просто не понимаю почему, потому что в опциях android он работает отлично.

...