2015-05-31 9 views
19

Sto usando il seguente codice per restituire un oggetto a Cordova quando cambia la modalità di scansione del Bluetooth del dispositivo (cioè rilevabile/non rilevabile).EXTRA_PREVIOUS_SCAN_MODE restituisce sempre un errore per Android Bluetooth

cordova.getActivity().getApplicationContext().registerReceiver(new BroadcastReceiver(){ 
    @Override 
    public void onReceive(Context c,Intent intent){ 
     JSONObject json=new JSONObject(); 
     try{ 
      json.put("current",intent.getIntExtra(BluetoothAdapter.EXTRA_SCAN_MODE,BluetoothAdapter.ERROR)); 
      json.put("previous",intent.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE,BluetoothAdapter.ERROR)); 
     }catch(JSONException e){ 
     } 
     PluginResult result=new PluginResult(PluginResult.Status.OK,json); 
     result.setKeepCallback(true); 
     discoverableCallback.sendPluginResult(result); // discoverableCallback is a callbackContext 
    } 
},new IntentFilter(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED)); 

Tuttavia, intent.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE,BluetoothAdapter.ERROR) è sempre BluetoothAdapter.ERROR. Ho provato a impostare la rilevabilità avanti e indietro più volte consecutivamente ed è sempre BluetoothAdapter.ERROR. Come faccio a ripristinare la modalità di scansione precedente?

+0

Qual è l'intento che stai analizzando? Prova a stampare le coppie di valori chiave tramite Iterator. – Cookster

+0

L'intento è quello di impostare il Bluetooth come rilevabile (da altri dispositivi). Quali coppie chiave/valore di variabile devo stampare? –

+0

questo BluetoothAdapter.EXTRA_PREVIOUS_CONNECTION_STATE non funzionerà con le condizioni richieste? – pratz9999

risposta

2

Da quello che vedo nella fonte AOSP, EXTRA_PREVIOUS_SCAN_MODE non viene mai utilizzato. Quindi immagino che la documentazione di Google sia errata in questo caso. Se esegui una ricerca nei risultati here non ci sono riferimenti nell'intero codice sorgente