我的Android应用程序扫描BLE设备,从某一点开始失败,并显示错误代码2(ScanCallback.SCAN_FAILED_APPLICATION_REGISTRATION_FAILED)。我正在使用Nexus 9、5.0.1棒棒糖。
即使我重新启动了该应用程序,该问题仍然存在,并且当我从“设置”重新启动蓝牙服务时,我终于可以摆脱该问题。但是这个问题反复出现,我认为我的编码方式有误。 BLE相关API是新的,几乎没有信息。
有谁知道此错误的一般解决方案,最好不需要重启蓝牙服务?即使在Android API参考中记录了此错误代码,我也不知道如何正确处理它。
最佳答案
当你得到错误
SCAN_FAILED_APPLICATION_REGISTRATION_FAILED
您应该禁用BluetoothAdapter
BluetoothAdapter.getDefaultAdapter().disable();
禁用BluetoothAdapter,将触发事件STATE_TURNING_OFF。触发此事件后,尝试重新连接到BluetoothAdapter:
case BluetoothAdapter.STATE_OFF:
Log.d(TAG, "bluetooth adapter turned off");
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d(TAG, "bluetooth adapter try to enable");
BluetoothAdapter.getDefaultAdapter().enable();
}}, 500);
break;