2015-05-31 10 views
19

Korzystam z poniższego kodu, aby zwrócić obiekt do Cordova, gdy zmieni się tryb skanowania Bluetooth urządzenia (to jest wykrywalny/niemożliwy do wykrycia).EXTRA_PREVIOUS_SCAN_MODE zawsze zwraca błąd dla Androida 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)); 

Jednak intent.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE,BluetoothAdapter.ERROR) jest zawsze BluetoothAdapter.ERROR. Próbowałem ustawiać wykrywalność kilka razy z rzędu i zawsze jest to BluetoothAdapter.ERROR. Jak sprawić, by zwrócił poprzedni tryb skanowania?

+0

Co to jest wewnątrz intencji, którą analizujesz? Spróbuj wydrukować pary wartości klucza za pomocą Iteratora. – Cookster

+0

Celem jest ustawienie Bluetooth jako wykrywalnego (przez inne urządzenia). Które pary klucz/wartość zmiennych są drukowane? –

+0

ten BluetoothAdapter.EXTRA_PREVIOUS_CONNECTION_STATE nie będzie działać dla ciebie z wymaganym stanem? – pratz9999

Odpowiedz

2

Z tego, co widzę w źródle AOSP, nigdy nie jest używana EXTRA_PREVIOUS_SCAN_MODE. Zgaduję więc, że dokumentacja od Google jest w tym przypadku błędna. Jeśli przeszukasz here, wyniki nie zawierają żadnych odniesień w całym kodzie źródłowym:

Powiązane problemy