接近信标API:Android和附近



我的Android应用程序用于广播信标,这些信标通过附近的URL链接作为通知发送到附近的设备。

谷歌宣布他们将关闭这项服务。

他们建议使用接近信标API

在阅读了文档后,我发现我需要通过REST-API注册每个信标,使用OAuth和API进行身份验证(同时(,他们还说了一些关于Google Places的内容等等

它看起来相当复杂。

我不明白:这些信标会通过附近的URL链接发送给附近的用户吗?它以前是如何工作的。

也许有一个Android库?我发现了这个。但这只是为了"扫描"。我不明白这是干什么的。难道不可能像以前一样向附近的其他设备广播信标吗?

谢谢

谷歌附近提供了一种向信标附近的Android设备发送通知的方法,即使用户没有安装您的第三方应用程序。现在"附近"已经停产,这将不再可能。您现在必须在设备上安装第三方应用程序,才能向用户发送信标检测通知。

最简单的方法是构建一个基本的Android应用程序,只需监听信标,并在检测到信标时发送通知。你可以使用Google Pproximity Beacons API来实现这一点,这有点复杂,因为它需要在Google的服务器上注册你的信标,启用服务,并在你的应用程序中嵌入API密钥。

一个更简单的方法是使用开源的Android Beacon Library,它更成熟,没有服务器或许可要求。你可以在这里阅读它是如何工作的。发送信标检测通知非常简单。只需链接到库即可将此代码片段添加到自定义的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,关键的障碍都是让用户安装你的应用程序。除非他们这样做,否则他们将不会收到通知。谷歌附近能够在似乎没有应用程序的情况下实现这一目标,它将自己嵌入了谷歌播放服务客户端应用程序中,该应用程序预装在中国以外的大多数安卓设备上。从本质上讲,谷歌是在用他们的应用程序为你发送通知。现在,谷歌宣布将不再这样做。

同样,唯一的选择是构建和分发您自己的应用程序,该应用程序可以检测信标并发送通知。

全面披露:我是Android Beacon Library开源项目的首席开发人员。

最新更新