У меня очень запутанная проблема. Если я использую 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 он работает отлично.