Android BLE Beacon scan

Bluetooth LE был добавлен в Android 4.3, но, похоже, нет режима фонового сканирования, который бы разбудил приложение после его регистрации, чтобы получать уведомление через доступный ULEID BLE в непосредственной близости.

Это, по-видимому, возможно с помощью iOS7 и iBeacons API. Кто-нибудь знает, есть ли такая функция в Android 4.3 или есть ли хороший обход для периодического сканирования среды BLE для устройств BLE?

http://developer.android.com/guide/topics/connectivity/bluetooth-le.html

Estimote Details iOS 7 iBeacon Support For Its Contextual Proximity Shopping Devices

Solutions Collecting From Web of "Android BLE Beacon scan"

Я думаю, что есть обходное решение, как показано ниже: вам нужно реализовать службу и создать поток для цикла while, чтобы вызвать mBluetoothAdapter.startLeScan (mLeScanCallback), после чего вы можете проверить, запускаться ли на определенном устройстве, а также искать определенный UUID.

Непосредственно из примера Android вы можете использовать обработчик:

 private void scanLeDevice(final boolean enable) { if (enable) { // Stops scanning after a pre-defined scan period. mHandler.postDelayed(new Runnable() { @Override public void run() { mScanning = false; mBluetoothAdapter.stopLeScan(mLeScanCallback); invalidateOptionsMenu(); } }, SCAN_PERIOD); mScanning = true; mBluetoothAdapter.startLeScan(mLeScanCallback); } else { mScanning = false; mBluetoothAdapter.stopLeScan(mLeScanCallback); } invalidateOptionsMenu(); } 

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

Эта библиотека может помочь вам в изучении только для iBeacons, который вас интересует: https://github.com/inthepocket/ibeacon-scanner-android

Кроме того, когда сканирование невозможно (из-за отключения Bluetooth, «Отключить местоположение», разрешение отменено), вам необходимо перезапустить сканирование каждый раз, когда все необходимые условия будут выполнены снова, здесь вам понадобятся широковещательные слушатели.

Условия сканирования:

  • У вас есть чип Bluetooth LE: любой.

  • Есть Bluetooth на: любой.

  • Место нахождения на: Android 6+.

  • Имеют разрешение на время выполнения: Android 6+.

  • Максимальный запуск 5 сканирует через 30 секунд: Android 7+.