Сканирование и подключение Android BLE занимает слишком много времени по сравнению с прямым подключением через Mac - PullRequest
0 голосов
/ 07 мая 2019

У меня есть простое приложение для Android, которое необходимо подключить к нашему оборудованию через BLE.

В iOS оба случая имеют почти одинаковое время.

Случай 1:

  • Сканирование для идентификатора услуги.
  • Получение результатов.
  • Подключение
  • Обнаружение услуг

Случай 2:

  • Подключение напрямую через Mac
  • Службы поиска

Используемая библиотека: Android-Scanner-Compat-Library

Код:

Сканирование:

scanner = BluetoothLeScannerCompat.getScanner();
final ScanSettings settings = new ScanSettings.Builder()
        .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
        .setUseHardwareBatchingIfSupported(false).build();
final List<ScanFilter> filters = new ArrayList<>();
Log.i(TAG, "Scanning.....");
scanner.startScan(filters, settings, scanCallback);
mHandler.postDelayed(() -> {
        stopScan();
}, SCAN_DURATION);

Остановить сканирование:

scanner.stopScan(scanCallback);
...