2016-02-13 34 views
8

La maggior parte delle volte funziona benissimo, ma a volte sto avendo questo errore durante il tentativo di rilevare i dispositivi BLE:Come risolvere l'errore 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 

codice di errore 2 significa https://developer.android.com/reference/android/bluetooth/le/ScanCallback.html#SCAN_FAILED_APPLICATION_REGISTRATION_FAILED

sembra essere problema Android interna, ma può essere influenzato dal mio codice facendo qualcosa di sbagliato. Quale può essere la ragione e come girarla?

PS. Nexus 9, Android 6.0.1

risposta

0

Una possibile soluzione alternativa potrebbe essere disabilitare/abilitare il bluetooth a livello di programmazione. Quando avete ottenuto l'errore SCAN_FAILED_APPLICATION_REGISTRATION_FAILED è necessario disabilitare il BluetoothAdapter:

BluetoothAdapter.getDefaultAdapter().disable(); 

Disattivazione BluetoothAdapter, l'evento STATE_TURNING_OFF è sparato. Una volta che questo evento è stato attivato, prova a riconnetterti a 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

Purtroppo questo non sembra risolvere il problema. Sto riscontrando lo stesso problema sia su Android 6.0.1 che su 7.1. La mia app stava eseguendo una scansione continua per lunghi periodi di tempo; questo è successo solo due volte in circa una settimana. L'attivazione e la disattivazione della scheda Bluetooth dall'app Impostazioni non ha risolto il problema, ma l'aspetto interessante è che l'app Impostazioni può ancora eseguire una scansione Bluetooth per le periferiche circostanti, ma tutte le app di terze parti che eseguono la scansione otterrebbero questo codice di errore di 'SCAN_FAILED_APPLICATION_REGISTRATION_FAILED'. –

Problemi correlati