在后台监控期间接收来自信标区域检测的通知

Posted

技术标签:

【中文标题】在后台监控期间接收来自信标区域检测的通知【英文标题】:Receive notification from beacon region detection during background monitoring 【发布时间】:2015-08-25 09:05:52 【问题描述】:

我正在尝试创建一个基本应用程序,其中我创建了一个 regionBootstrap 用于对各种类型的信标进行后台监控,就像在参考应用程序中一样。

但是,我不想在进入信标区域时将应用程序置于前台,而是简单地显示“您已进入信标区域”本地通知。

我认为这需要在“扩展应用程序实现 BootStrapNotifier”类的 onCreate 方法中进行编码。但我也看到启动主要活动的意图是在 didEnterRegion 方法中实例化的,那么这实际上是我需要编写通知的地方吗?

【问题讨论】:

【参考方案1】:

触发后台通知的最简单方法是创建一个实现BootstrapNotifier 的自定义Application 类。然后将通知代码放在didEnterRegion 回调方法中,如下所示:

@Override
public void didEnterRegion(Region arg0) 
    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());


您可以在reference application 中看到关于android Beacon Library 的完整示例。

【讨论】:

以上是关于在后台监控期间接收来自信标区域检测的通知的主要内容,如果未能解决你的问题,请参考以下文章

基于 UUID 监控 iBeacon 区域时,何时收到通知?

如何在 iOS 后台模式下获取信标广告数据

iOS 在后台监控/测距信标会消耗大量电池

iBeacon(Kontakt Beacon)区域监控在android

信标区域的 iBeacon 监控模式接近度

应用在后台时启动 CLLocationManager 位置更新