2015-05-31 11 views
19

Tôi đang sử dụng mã sau để trả lại đối tượng cho Cordova khi chế độ quét Bluetooth của thiết bị thay đổi (tức là có thể phát hiện/không thể phát hiện được).EXTRA_PREVIOUS_SCAN_MODE luôn trả về lỗi cho 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)); 

Tuy nhiên, intent.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_SCAN_MODE,BluetoothAdapter.ERROR) luôn là BluetoothAdapter.ERROR. Tôi đã thử thiết lập khả năng phát hiện và tắt liên tục nhiều lần và luôn là BluetoothAdapter.ERROR. Làm thế nào để làm cho nó trở về chế độ quét trước đó?

+0

Nội dung bạn đang phân tích cú pháp là gì? Thử in các cặp giá trị khóa qua Iterator. – Cookster

+0

Mục đích là đặt Bluetooth ở chế độ có thể phát hiện được (bởi các thiết bị khác). Tôi có thể in các cặp khóa/giá trị của biến nào? –

+0

BluetoothAdapter.EXTRA_PREVIOUS_CONNECTION_STATE này sẽ không hoạt động cho bạn với điều kiện bắt buộc? – pratz9999

Trả lời

2

Từ những gì tôi thấy trong nguồn AOSP, EXTRA_PREVIOUS_SCAN_MODE không bao giờ được sử dụng. Vì vậy, tôi đoán tài liệu từ Google là sai trong trường hợp này. Nếu bạn tìm kiếm here kết quả không có tham chiếu trong toàn bộ mã nguồn

Các vấn đề liên quan