您的位置:首页 > 移动开发 > Android开发

Android代码清除蓝牙已配对信息(转载未验证)

2018-01-18 10:11 344 查看
转载自博客代码中解除手机已配对的蓝牙设备

这几天被一个问题困扰了很久,就是app里面连接蓝牙设备之后解绑断开,蓝牙回调也显示了断开,但是自己再去搜就搜不到了。找了很久原因发现在手机设置的蓝牙配对列表中发现该设备已被配对,导致手机搜不到。然后就找到一个方法得到手机配对的蓝牙列表然后再通过反射的机制取消蓝牙的配对,到这里之后手机就能搜到了蓝牙。但是之后的每一次连接都需要再重新配对。接下来贴下代码:

//得到配对的设备列表,清除已配对的设备
public void removePairDevice(){
if(mBluetoothAdapter!=null){
Set<BluetoothDevice> bondedDevices = mBluetoothAdapter.getBondedDevices();
for(BluetoothDevice device : bondedDevices ){
unpairDevice(device);
}
}

}

//反射来调用BluetoothDevice.removeBond取消设备的配对
private void unpairDevice(BluetoothDevice device) {
try {
Method m = device.getClass()
.getMethod("removeBond", (Class[]) null);
m.invoke(device, (Object[]) null);
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: