`bluetoothAdapter.enable();`
enable()源码:
public boolean enable() {
if (isEnabled()) {
if (DBG) {
Log.d(TAG, "enable(): BT already enabled!");
}
return true;
}
try {
return mManagerService.enable(ActivityThread.currentPackageName());
} catch (RemoteException e) {
Log.e(TAG, "", e);
}
return false;
}
业务代码:
bluetoothAdapter.enable();
bluetoothAdapter.startDiscovery();
Set<BluetoothDevice> savedDevices = bluetoothAdapter.getBondedDevices();
if (savedDevices.size() > 0) {
for (BluetoothDevice device : savedDevices) {
String deviceName = device.getName();
String deviceAddress = device.getAddress();
arr.add(new BluetoothBean(deviceName, deviceAddress, BluetoothBean.SAVED));
}
}
现在的问题是调用了`bluetoothAdapter.enable();`,但还没开启蓝牙,我就已经调用了下面的业务`bluetoothAdapter.getBondedDevices()`,导致Set.size() = 0,请问下有何解决方法嘛?
问题更新,现在在原来的业务代码上进行了改进,改了后的业务代码如下:
bluetoothAdapter.enable();
while(sysAdapter.getState() != BluetoothAdapter.STATE_ON); //modify by wayhoi. waitting for bluetooth to turn on
bluetoothAdapter.startDiscovery();
Set<BluetoothDevice> savedDevices = bluetoothAdapter.getBondedDevices();
if (savedDevices.size() > 0) {
for (BluetoothDevice device : savedDevices) {
String deviceName = device.getName();
String deviceAddress = device.getAddress();
arr.add(new BluetoothBean(deviceName, deviceAddress, BluetoothBean.SAVED));
}
}
您的每一个用心回答,都会让这个世界变得更美好一些!