2016-02-13 478 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'。 –