我试图不断地显示蓝牙设备并在屏幕上显示它们,但它永远不会显示我所有的设备,而是一次只显示1个。我找不到我做错了什么。这里是我的代码,可能是你可以找到它的任何问题。谢谢找不到所有的蓝牙设备android
class monitorBluetooth extends monitor {
private ListView mLvDevices;
private ArrayList<String> mDeviceList = new ArrayList<String>();
public monitorBluetooth(service service) {
super(service);
bluetooth = BluetoothAdapter.getDefaultAdapter();
this.bReceiver = new BluetoothReceiver();
}
public void finalize() throws Throwable {
super.finalize();
}
public void run() {
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
service.registerReceiver(this.bReceiver, filter);
if(service != null) {
bluetooth = BluetoothAdapter.getDefaultAdapter();
bluetooth.startDiscovery();
}
}
class BluetoothReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Set<BluetoothDevice> pairedDevices = bluetooth.getBondedDevices();
String action = intent.getAction();
if(BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String uuid = intent.getStringExtra(BluetoothDevice.EXTRA_UUID);
int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);
mDeviceList.add(device.getAddress() + ", " + device.getName()); // get mac address
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, mDeviceList);
mLvDevices.setAdapter(adapter);
}
}
}
}
BluetoothAdapter bluetooth;
private BluetoothReceiver bReceiver;
我用蓝牙启用附近的两个设备检查,但我可以只有一个,我已经测试了多次 – 2014-10-07 09:30:16
启用!=可见,请确保它们也可见。您可以在mDeviceList.add之上添加Log.d消息来查看会发生什么。注册到BluetoothAdapter.ACTION_DISCOVERY_STARTED和BluetoothAdapter.ACTION_DISCOVERY_FINISHED也是有意义的。 – mikkokoo 2014-10-07 12:33:22
当然,我让它们可见,让我试试Log.d和其他意图过滤器,你的意图 – 2014-10-07 14:24:32