Disable Bluetooth discoverable mode on Android

后端 未结 3 1152
灰色年华
灰色年华 2020-12-16 15:50

I found in the Android documentation how to turn Bluetooth discoverability mode on:

Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DI         


        
相关标签:
3条回答
  • 2020-12-16 16:38

    Just send a new discoverable request with duration 1 (or 0 might even work):

    Intent discoverableIntent = new
    Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
    discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 1);
    startActivity(discoverableIntent);
    
    0 讨论(0)
  • 2020-12-16 16:40

    cancelDiscovery() is not for this. This method can be used to stop the scanning of your device for other bluetooth devices. It is different from this to make device not visible.

    0 讨论(0)
  • 2020-12-16 16:47

    Care when using this method, it might be easily changed as it is hidden.

    BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();  
    try {
        Method method = BluetoothAdapter.class.getMethod("setScanMode", int.class);
        method.invoke(bluetoothAdapter, BluetoothAdapter.SCAN_MODE_CONNECTABLE);
    } catch (NoSuchMethodException | IllegalArgumentException | IllegalAccessException | InvocationTargetException e) {
        Log.e(TAG, "Failed to turn off bluetooth device discoverability.", e);
    }
    

    Also usable with SCAN_MODE_NONE and SCAN_MODE_CONNECTABLE_DISCOVERABLE (uses default duration)

    Source

    0 讨论(0)
提交回复
热议问题