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?
Co to jest wewnątrz intencji, którą analizujesz? Spróbuj wydrukować pary wartości klucza za pomocą Iteratora. – Cookster
Celem jest ustawienie Bluetooth jako wykrywalnego (przez inne urządzenia). Które pary klucz/wartość zmiennych są drukowane? –
ten BluetoothAdapter.EXTRA_PREVIOUS_CONNECTION_STATE nie będzie działać dla ciebie z wymaganym stanem? – pratz9999