И с открытым исходным кодом Android Beacon библиотеки или Proximity Beacon API Google позволяют программы для обнаружения Eddystone-совместимых маяки.
Android Beacon Library - клиентский API. Это совершенно бесплатно и покрывается лицензией Apache 2 с открытым исходным кодом, без ограничений ресурсов. Он не требует какой-либо серверной инфраструктуры и обеспечивает обратные вызовы при обнаружении маяков и диапазон обратных вызовов, чтобы рассказать вам примерно, как далеко они находятся, когда они продолжают находиться вокруг. Он также может запустить ваше приложение в фоновом режиме при обнаружении радиомаяка. Это хороший выбор, когда вам необходимо решение для радиомаяков общего назначения или нужен гибкий низкоуровневый доступ к радиомаякам.
Google Proximity Beacon API, напротив, является более высокоуровневым и специализированным сервером API. Это требует, чтобы маяки регистрировались на серверах Google и позволяли прикреплять к этим маякам как государственные, так и частные метаданные. Соответствующий API связанных сообщений затем обеспечит обратный вызов при обнаружении маяка и сообщит вам данные, которые вы привязали к этому маяку. Он предназначен для возврата высокоточных маяковых данных и не обеспечивает низкоуровневый доступ к обнаружению радиомаяков. Как вы упомянули, есть некоторые ограничения на количество звонков, которые вы можете сделать. Для этой библиотеки требуется последняя версия Служб Google Play, которая обычно доступна на более новых телефонах в США и Европе, но обычно недоступна в Китае и некоторых других странах.
От кого зависит выбор, который поможет вам решить ваш прецедент. Если вам нужны облачные функции для серверного решения и вы можете жить с зависимостями от сервисов Google Play, то это может быть правильным выбором для вас. Если вам требуется более гибкое решение и не требуется серверный API, Android Beacon Library может работать хорошо для вас.
Полное раскрытие информации: Я являюсь ведущим разработчиком в Android Beacon Library.
Спасибо @davidgyoung. Итак, я правильно подумал. Тем не менее я не знаю, какой API я буду использовать, но, вероятно, я буду использовать Android Beacon Library, чтобы не иметь ограничений на запросы. –