এখন কোড লিখুন যা পিয়ারের লিস্ট নিয়ে আসে এবং প্রক্রিয়া করে। প্রথমে WifiP2pManager.PeerListListener ইন্টারফেস বাস্তবায়ন করুন, যা পিয়ার সম্পর্কে তথ্য প্রদান করবে যাতে ওয়াই-ফাই পিয়ার টু পিয়ার চিহ্নিত হয়। নিম্নোক্ত খন্ডাংশটি এটা সম্পর্কে বিস্তারিত আলোচনা করে:
private List peers = new ArrayList();
...
private PeerListListener peerListListener = new PeerListListener() {
@Override
public void onPeersAvailable(WifiP2pDeviceList peerList) {
// Out with the old, in with the new.
peers.clear();
peers.addAll(peerList.getDeviceList());
// If an AdapterView is backed by this data, notify it
// of the change. For instance, if you have a ListView of available
// peers, trigger an update.
((WiFiPeerListAdapter) getListAdapter()).notifyDataSetChanged();
if (peers.size() == 0) {
Log.d(WiFiDirectActivity.TAG, "No devices found");
return;
}
}
}
এখন requestPeers()কল করতে আপনার ব্রডকাস্ট রিসিভারের onReceive()পদ্ধতি পরিবর্তন করুন যখন একশন WIFI_P2P_PEERS_CHANGED_ACTION সহকারে একটি ইনটেন্ট রিসিভ করা হয়। আপনাকে যেভাবেই হোক এই লিসেনারকে রিসিভারের মধ্যে পাস করে দিন। ব্রডকাস্ট রিসিভারের কনস্ট্রাকটরে একটি আরগুমেন্ট হিসাবে এটা সেন্ড করার একটি উপায়।
public void onReceive(Context context, Intent intent) {
...
else if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) {
// Request available peers from the wifi p2p manager. This is an
// asynchronous call and the calling activity is notified with a
// callback on PeerListListener.onPeersAvailable()
if (mManager != null) {
mManager.requestPeers(mChannel, peerListListener);
}
Log.d(WiFiDirectActivity.TAG, "P2P peers changed");
}...
}
এখন, একশন WIFI_P2P_PEERS_CHANGED_ACTION ইনটেন্ট সহকারে একটি ইনটেন্ট আপডেট পিয়ার লিস্টের জন্য রিকোয়েস্ট কে চালু করবে।