Как периодически сканировать для bluetooth-устройств на андроиде

Привет это может звучать как глупый вопрос. Но я не мог найти любые ответы для этого, таким образом отправляя здесь.

Я создаю внутреннее приложение, которое непрерывно сканирует аппаратные ключи Bluetooth, расположенные в различных местоположениях в месте как торговый центр или библиотека. Когда я перемещаюсь в торговый центр с телефоном на базе Android в моей руке, я должен смочь получить ближайший аппаратный ключ, с которым я могу соединиться (Глупая Идея, но я хочу сделать что-то еще с этим).For это, я должен смочь непрерывно просканировать для bluetooth-устройств.

Кто-то может сказать мне, как я заставляю андроид периодически сканировать доступные bluetooth-устройства.

31
задан Ameya Phadke 19 July 2010 в 22:25
поделиться

2 ответа

Я думаю, что это так просто, но раньше мне не приходило в голову. Вот ответ,

private BluetoothAdapter mBtAdapter;
mBtAdapter.startDiscovery();

private final BroadcastReceiver mReceiver = new BroadcastReceiver()
{
        @Override
        public void onReceive(Context context, Intent intent)
        {
            String action = intent.getAction();

            // When discovery finds a device
            if (BluetoothDevice.ACTION_FOUND.equals(action))
            {
            //do something
            }

            else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action))
            {
                Log.v(TAG,"Entered the Finished ");
                mBtAdapter.startDiscovery();
            }

Таким образом, мы должны снова начать обнаружение на ACTION_DISCOVERY_FINISHED, который будет непрерывно сканировать устройства каждые 12 секунд.

20
ответ дан 27 November 2019 в 22:38
поделиться

Ваш фрагмент кода должен работать - только это это будет дорого с точки зрения энергопотребления и наверняка убьет ваше устройство / телефон за несколько часов. StartDiscovery () выполняет двухэтапный процесс: поиск устройства путем запроса его, за которым следует обнаружение имени, то есть поиск по страницам и подключение к устройству

. К сожалению, Android не предоставляет никакого API для управления этим и выполняет только запросы, а также существует функция периодических запросов, определенная и поддерживаемая большинством наборов микросхем Bluetooth, в настоящее время Android не имеет API для выполнения периодических запросов, который мог бы быть более идеальным для вашего варианта использования.

2
ответ дан 27 November 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: