Ответ 1
ACTION_DISCOVERY_FINISHED
не говорит вам ничего, кроме действия обнаружения. https://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#ACTION_DISCOVERY_FINISHED
Если вы хотите захватить устройства из сканирования, вы должны прочитать, что startDiscovery()
говорит о поиске устройств:
Процесс обнаружения обычно включает в себя сканирование запросов около 12 секунд, а затем проверку страницы каждого нового устройства для получения его имени Bluetooth.
Это асинхронный вызов, он немедленно вернется. Зарегистрируйте для ACTION_DISCOVERY_STARTED и ACTION_DISCOVERY_FINISHED намерения точно определить, когда открытие начинается и завершается. Зарегистрируйтесь для ACTION_FOUND, чтобы получать уведомления о наличии удаленных устройств Bluetooth.
https://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#startDiscovery()
Таким образом, вы должны использовать ACTION_FOUND
и проанализировать EXTRA_DEVICE
для устройств:
Трансляция: обнаружено удаленное устройство.
Отправляется, когда удаленное устройство обнаружено во время обнаружения.
Всегда содержит дополнительные поля EXTRA_DEVICE и EXTRA_CLASS. Может содержать дополнительные поля EXTRA_NAME и/или EXTRA_RSSI, если они доступны.
https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#ACTION_FOUND
В последовательности событий вы должны сделать следующее:
-
ACTION_DISCOVERY_STARTED
- что начнет обнаружение -
ACTION_FOUND
- что найдет устройство -
ACTION_DISCOVERY_FINISHED
- что закончит обнаружение