Proximity Beacon API: Android и рядом
Мое приложение Android используется для трансляции маяков, которые доставляются на соседние устройства с помощью Nearby в качестве уведомлений с URL-ссылками.
Google объявил, что собирается закрыть этот сервис.
Они рекомендуют использовать Proximity Beacons API
Прочитав документацию, я понял, что мне нужно регистрировать каждый маяк через REST-API, аутентифицировать с использованием OAuth и API (одновременно), также они говорят что-то о Google Places и так далее.
Это выглядит довольно сложно.
И я не понимаю: будут ли эти маяки доставляться соседним пользователям через Рядом с моей URL-ссылкой? Как это работало раньше.
Может быть, есть Android lib? Я нашел это. Но это только для "сканирования". Я не понимаю, для чего. Разве нельзя просто транслировать маяки на другие устройства поблизости, как это было раньше?
Спасибо
1 ответ
Google Nearby provided a way to send notifications to Android devices near your beacons even if users do not have your third-party app installed. Now that Nearby is being discontinued, this is no longer possible. You must now get a third party app installed on a device in order to send notifications to a user on beacon detection.
The simplest way to do this is to build a basic Android app that just listens for beacons and sends a notification when one is detected. You can do this with the Google Pproximity Beacons API, which is a bit complicated because it requires registering your beacons with Google's servers, enabling the service, and embedding an API key I your app.
Гораздо более простой способ - использовать библиотеку Android Beacon с открытым исходным кодом, которая гораздо более устоялась и не имеет требований к серверу или лицензированию. Вы можете прочитать, как это работает здесь. Отправить уведомление об обнаружении маяка очень просто. Просто ссылка на библиотеку добавить этот фрагмент кода в пользовательский класс приложений Android.
@Override
public void onCreate() {
super.onCreate();
BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
Region region = new Region("com.example.myapp.boostrapRegion", null, null, null);
RegionBootstrap regionBootstrap = new RegionBootstrap(this, region);
}
@Override
public void didEnterRegion(Region region) {
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this)
.setContentTitle("Beacon Reference Application")
.setContentText("A beacon is nearby.")
.setSmallIcon(R.drawable.ic_launcher);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addNextIntent(new Intent(this, MonitoringActivity.class));
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
builder.setContentIntent(resultPendingIntent);
NotificationManager notificationManager =
(NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1, builder.build())
}
Какой бы APi вы ни использовали, критическое препятствие - заставить пользователей установить ваше приложение. Если они этого не сделают, они не будут получать уведомления. Похоже, Google Nearby смог сделать это без приложения, внедрив себя в клиентское приложение Google Play Services, которое предварительно установлено на большинстве устройств Android за пределами Китая. По сути, Google доставлял вам уведомления с помощью своего приложения. Теперь Google объявляет, что больше не будет этого делать.
Опять же, единственной альтернативой является создание и распространение собственного приложения, которое обнаруживает маяки и отправляет ваши уведомления.
Полное раскрытие: я ведущий разработчик проекта с открытым исходным кодом библиотеки Android Beacon.