Как обнаружить IBeacon в Android без использования какой-либо библиотеки
Я новичок в Ibeacon, и я хочу знать, можем ли мы обнаружить Ibeacon в Android без использования какой-либо SDKLibrary или библиотеки может привести пример.
я знаю какую-то библиотеку, например Radius Networks но я не хочу использовать какую-либо библиотеку
2 ответа
В ОС Android нет кода, который обнаруживает iBeacon, но есть код, который позволяет сканировать устройства Bluetooth LE, которые являются устройством более низкого уровня, чем iBeacon.
Вы можете свернуть свой собственный код, который обнаруживает iBeacons, используя это сканирование Bluetooth LE. Это именно то, что делает библиотека Android iBeacon от Radius Networks. Это открытый исходный код, поэтому, если вы не хотите использовать библиотеку, вы можете просто скопировать блоки кода из библиотеки и выполнить собственное обнаружение.
Исходный код находится здесь: https://github.com/RadiusNetworks/android-ibeacon-service
РЕДАКТИРОВАТЬ: библиотека была перемещена в http://github.com/AltBeacon/android-beacon-library
Если вы обнаружите, что варианты использования очень просты, это может работать нормально. Будьте осторожны, чтобы не откусить слишком много работы, потому что обработка всех крайних случаев может стать все более сложной. Это то, что я узнал, когда писал библиотеку.
Если вы просто хотите поиграть с этим, я бы остановился на одном классе из библиотеки: IBeacon.java
Этот класс может конвертировать из записи сканирования Android Blueooth LE в IBeacon (если отсканированное устройство Bluetooth действительно является iBeacon)
Вы можете прочитать о том, как настроить сканирование Bluetooth LE на Android здесь: http://developer.android.com/guide/topics/connectivity/bluetooth-le.html
Появилась новая небольшая библиотека: https://github.com/inthepocket/ibeacon-scanner-android
Без библиотеки очень легко сканировать ibeacons, вам просто нужно создать правильный ScanFilter на основе iBeacon, а затем запустить сканирование BLE. Сначала создать правильный ScanFilter может быть сложно, лучше взгляните на код в упомянутой библиотеке.
В зависимости от версии Android, местоположение должно быть включено, разрешение на местоположение должно быть предоставлено и Bluetooth всегда должен быть включен.