EXTRA_PREVIOUS_SCAN_模式总是为Android蓝牙返回一个错误
当设备的蓝牙扫描模式改变(即可发现/不可发现)时,我使用以下代码将对象返回CordovaEXTRA_PREVIOUS_SCAN_模式总是为Android蓝牙返回一个错误,android,cordova,bluetooth,Android,Cordova,Bluetooth,当设备的蓝牙扫描模式改变(即可发现/不可发现)时,我使用以下代码将对象返回Cordova 但是,intent.getIntExtra(BluetoothAdapter.EXTRA\u PREVIOUS\u SCAN\u MODE,BluetoothAdapter.ERROR)始终是BluetoothAdapter.ERROR。我连续几次尝试打开和关闭可发现性,结果总是BluetoothAdapter.ERROR。如何使其返回上一扫描模式?从我在源代码中看到的情况来看,EXTRA\u previo
但是,
intent.getIntExtra(BluetoothAdapter.EXTRA\u PREVIOUS\u SCAN\u MODE,BluetoothAdapter.ERROR)
始终是BluetoothAdapter.ERROR
。我连续几次尝试打开和关闭可发现性,结果总是BluetoothAdapter.ERROR
。如何使其返回上一扫描模式?从我在源代码中看到的情况来看,EXTRA\u previous\u scan\u mode
从未被使用过。所以我猜谷歌的文档在这种情况下是错误的。如果您在整个源代码中没有引用搜索结果您要解析的意图中有什么?尝试通过迭代器打印键值对。目的是将蓝牙设置为可发现(由其他设备)。我应该打印哪个变量的键/值对?此BluetoothAdapter.EXTRA\u PREVIOUS\u CONNECTION\u状态在需要的条件下无法工作?我认为您的意图是出于某种原因(目前未知)缺少“EXTRA\u PREVIOUS\u SCAN\u MODE”int。试着调试并打印你意图中的所有键,看看它是否在那里。如果不是,我们将看看如何进一步进行。尝试以下代码来编写所有数据:谢谢@Tom,我会在回家后再尝试。
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));