Отключить режим обнаружения Bluetooth на Android - PullRequest
12 голосов
/ 30 мая 2010

Я нашел в документации Android, как включить режим обнаружения Bluetooth:

Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(discoverableIntent);

Это сделает устройство доступным для обнаружения в течение 300 секунд ( документация ).

Мой вопрос: как отключить обнаружение до истечения этого времени? Я хотел бы повторить соответствующую настройку в настройках | Беспроводные сети и апплет настроек Bluetooth, которые позволяют включать и выключать обнаружение одним щелчком мыши.

Любая помощь?

Ответы [ 3 ]

9 голосов
/ 24 июня 2010

Просто отправьте новый обнаруживаемый запрос с продолжительностью 1 (или даже 0 может сработать):

Intent discoverableIntent = new
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 1);
startActivity(discoverableIntent);
1 голос
/ 11 июня 2011

cancelDiscovery() не для этого. Этот метод можно использовать для остановки сканирования вашего устройства на наличие других устройств Bluetooth. Это отличается от этого, чтобы сделать устройство не видимым.

0 голосов
/ 01 марта 2018

Осторожность при использовании этого метода, он может быть легко изменен, поскольку он скрыт.

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);
}

Также можно использовать с SCAN_MODE_NONE и SCAN_MODE_CONNECTABLE_DISCOVERABLE (используется длительность по умолчанию)

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...