我的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;

09-30 20:55