Проблема с пределом сканирования для Android O - PullRequest
0 голосов
/ 03 сентября 2018

Попытка реализовать периодическое сканирование Bluetooth в Android O.

Код выполняет сканирование каждые 15 минут и в итоге выдает следующую ошибку:

09-05 10: 33: 26.387 I: [INFO: gatt_api.cc (1004)] GATT_Register 09-05 10: 33: 26.387 E: [ОШИБКА: gatt_api.cc (1032)] не может зарегистрировать клиента GATT, Максимальный клиент достиг: 32 09-05 10: 33: 26.387 E: Зарегистрироваться в стеке GATT не удалось.

Код выглядит следующим образом:

ScanSettings settings = (new ScanSettings.Builder()
                .setScanMode(ScanSettings.SCAN_MODE_OPPORTUNISTIC)).build();

BluetoothManager bluetoothManager =
                (BluetoothManager) context.getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();

Intent intent = new Intent(context, ScannerBroadcastReceiver.class);
intent.putExtra("o-scan", true);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
bluetoothAdapter.getBluetoothLeScanner().startScan(BleUtils.buildScanFilters(), settings, pendingIntent));

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 03 сентября 2018

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

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

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

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