2016-02-13 157 views
8

大多数的时候,它的伟大工程,但有时我试图发现BLE装置有此错误:如何修复Android BLE SCAN_FAILED_APPLICATION_REGISTRATION_FAILED错误?

02-12 18:00:41.952 16178-16339/com.icrealtime.allie W/BleRpcConnectionFactory﹕ Starting discovery 
02-12 18:00:41.955 16178-16339/com.icrealtime.allie D/BluetoothAdapter﹕ STATE_ON 
02-12 18:00:41.957 24342-18813/? D/BtGatt.GattService﹕ registerClient() - UUID=c4a4c56d-1d10-4615-9c8d-44971bc3d6e6 
02-12 18:00:41.957 24342-24384/? E/bt_btif﹕ Register with GATT stack failed. 
02-12 18:00:41.957 24342-24384/? E/bt_btif﹕ Register with GATT stack failed. 
02-12 18:00:41.957 24342-24370/? D/BtGatt.GattService﹕ onClientRegistered() - UUID=c4a4c56d-1d10-4615-9c8d-44971bc3d6e6, clientIf=0 
02-12 18:00:41.958 16178-16190/com.icrealtime.allie D/BluetoothLeScanner﹕ onClientRegistered() - status=133 clientIf=0 
02-12 18:00:41.967 16178-16178/com.icrealtime.allie E/BleRpcConnectionFactory﹕ BLE SCAN FAILED: 2 

错误代码2个代表https://developer.android.com/reference/android/bluetooth/le/ScanCallback.html#SCAN_FAILED_APPLICATION_REGISTRATION_FAILED

这似乎是Android的内部问题,但它可能会受到我的代码做错事情的影响。什么原因以及如何绕过它?

PS。 Nexus 9,Android 6.0.1

回答

0

一种可能的解决方法,它可能是以编程方式禁用/启用蓝牙。当你有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; 
+0

不幸的是,这似乎无法解决问题。我在Android 6.0.1和7.1上看到了同样的问题。我的应用程序正在进行长时间的连续扫描;这在一周内只发生过两次。切换蓝牙适配器从设置应用程序也没有解决问题,但有趣的是,设置应用程序仍然可以执行蓝牙扫描周围的外围设备,但所有进行扫描的第三方应用程序会得到这个错误代码'SCAN_FAILED_APPLICATION_REGISTRATION_FAILED'。 –