我正在使用来自Android开发者网站的代码来检测范围内的蓝牙设备,并将它们添加到ArrayAdapter中。问题是,每个设备都会被添加到ArrayAdapter中5-6次。目前,我只是使用这里的代码:http://developer.android.com/guide/topics/connectivity/bluetooth.html#DiscoveringDevices
以下是我的代码:
有什么想法是什么原因导致这个问题?我应该怎么做才能让设备只被添加一次到ArrayAdapter中,而不是五次?
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
mBluetoothAdapter.startDiscovery();
final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// When discovery finds a device
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// Get the BluetoothDevice object from the Intent
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// Add the name and address to an array adapter to show in a ListView
mArrayAdapter.add(device.getName() + "\n" + device.getAddress());
}
}
};
有什么想法是什么原因导致这个问题?我应该怎么做才能让设备只被添加一次到ArrayAdapter中,而不是五次?
private Set<BluetoothDevice> foundDevices = new HashSet<>();
....if(foundDevices.contains(device)){ return; } foundDevices.add(device);
- serenskye