我希望设备名称在我的应用的textView中显示,因为它们在扫描过程中被发现但没有显示。
我看到蓝牙已成功启用,我的其他设备可见,但没有任何显示。
bluetoothAdapter = (BluetoothAdapter.getDefaultAdapter());
bluetoothAdapter.enable();
bluetoothAdapter.startDiscovery();
BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
//Finding devices
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
textView.append(device.getAddress());
}
}
};
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter);
我知道上面的代码有点打算用在listView中,但是它还不能用于textView吗?
答案 0 :(得分:0)
我想我在这里找到了问题。
当您调用bluetoothAdapter.startDiscovery()时,发生了什么问题?就在bluetoothAdapter.enable();
之后在开始使用它之前,适配器显然需要几秒钟才能完成所有设置。
所以我在那些之间稍微拖延了一下:
bluetoothAdapter.enable();
try {
Thread.sleep(3000);//3 seconds
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
bluetoothAdapter.startDiscovery();
现在一切似乎都有效。