【发布时间】:2016-05-08 21:26:05
【问题描述】:
我正在实现一个应用程序,我必须在其中发现使用 WiFi p2p 的设备并记录有关每个检测到的设备的一些数据。我遇到的问题是,当设备从联机到脱机时,WifiP2pDeviceList 没有更新,因此它会删除此设备。但是,当检测到新设备时,它通常会添加到列表中。那么我的代码有什么问题呢?
我已经看过这篇文章 (WIFI P2P discovery list is not getting refreshed?),它与我所拥有的不同。
/**
* A Table of devices that displays all peers and shows the corresponding
* info about them.
*/
public class DevicesTable extends Fragment implements PeerListListener {
protected static List<WifiP2pDevice> peers = new ArrayList<WifiP2pDevice>();
View mContentView = null;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mContentView = inflater.inflate(R.layout.table, null);
return mContentView;
}
/**
* @return this device
*/
public WifiP2pDevice getDevice() {
return device;
}
@Override
public void onPeersAvailable(WifiP2pDeviceList newPeers) {
ClientActivity x = (ClientActivity) ClientActivity.context;
if (!x.wifiP2pScanThread.isScanning()) {
return;
}
peers.clear();
peers.addAll(newPeers.getDeviceList());
ArrayList<String> onlinemacs = new ArrayList<>();
if (peers.size() == 0) {
Log.d(ClientActivity.TAG, "No devices found");
} else {
for (WifiP2pDevice dev : peers) {
//do something
}
}
}
}
【问题讨论】: