第2部分:背景监测

上一章弄好的android studio和集成了Estimote SDK,现在开始学习第一特性,监控beacons和beacons在等待时间中等待用户进来。

目录

1、什么是beacons监控

2、beacons区域

3、添加beacons管理

4、开始监控

5、显示进入通知

6、测试监视  开关休眠

7、重点回顾

什么是beacons监控

你可以认为信标监测作为一个区域,一个通常使用一组地理坐标定义的虚拟障碍物,移动到该区域在发生进入和离开事件的时候,此应用会作出反应。

在一个有很多beacons的案例中,很多beacons覆盖着一大片面积。这相比一个beacons的范围,以后者为基础混合的多个beacons范围的wifi和gps,但是对于这些beacons,触发的离开和进入事件只有30秒。

在Estimote Android SDK中,你可以使用beaconmanager中的setbackgroundscanperiod设置扫描,默认是25秒一次扫描,你也可以设置更短,但是相对手机电量会消耗。

beacons地区

如何规定beacons的使用区域?beacons的区域是一个概念的东西,在你使用Estimote Android SDK时候,你要注意以下:

UUID  一个常量字符串 如 b9407f30-f5f8-466e-aff9-25556b57fe6d

major number  一个无符号短整型,即一个整数,从1到65535不等,(0是一个保留值)

minor number  也是一个无符号的短整型  主要是数字

对于一个beacons地区 ,你可以只需要uuid和一个major number或者你可以更具体点增加minor number来混搭,你也可以只使用uuid,你也可以超级模糊的跳过uuid,这将会是得到所有的beacons。这些都是选择,

UUID + major + minor, UUID + major,uuid,什么都没有

当跨越多个beacons区域的时候,当检测匹配到第一个beacons时候,会有一个进入的事件和一个退出事件,直到没有匹配的beacons;当然你也可以创建一个beacons,监听它的进入退出事件。

添加一个beacons管理

要监测beacons,首先我们要创建beaconmanager,它将管理着所有的beacons。

预计在应用程序任何时候都要检测所有的beacons,无论是进行着哪一个活动。在android的Application中定义一个beaconmanager,刚刚好满足这个需求。

创建一个MyApplication

package com.example.airport;

import android.app.Application;

import com.estimote.sdk.BeaconManager;

public class MyApplication extends Application

{

private BeaconManager beaconManager;

@Override

public void onCreate()

{

super.onCreate();

beaconManager=new BeaconManager(getApplicationContext());

}

}

然后在AndroidManifest.xml更改Application

<application

<!-- add this: -->

android:name=".MyApplication"

<!-- the rest of the file follows -->

android:allowBackup="true"

启动监控

下一步我们将创建一个用于我们监测的beacons区域,下面教程,我们将会放置一个单一的beacons.但是它相对于beacons系统来是很简易的,beacons可以设置major或者minor或者两个都有或者是null(这些我们可以以后在做)

继续我们的MyApplication

beaconManager=newBeaconManager(getApplicationContext());// add this below:

beaconManager.connect(newBeaconManager.ServiceReadyCallback()

{

@Override

public void onServiceReady()

{

beaconManager.startMonitoring(new Region(

"monitored region",

UUID.fromString("B9407F30-F5F8-466E-AFF9-25556B57FE6D"),

22504,48827));

}

});

你添加这些代码,来添加uuid和major和minor的值和一个你的beacons。最简单的方法是去邮箱哪里复制beacons的对应信息。

默认beacons是在购买的邮箱上,你可以通过下面的指南来转移你的beacons
到别的邮箱。

另一个选择是在你的Estimote app中通过雷达的方式找到你的beacons,他会返回beacons的试图,包含它的uuid和major和minor

如果周边有很多的beacons,会以一个列表的方式代替beacons详情视图,由近到远的方式排列。所以你距离近的那一个应该会出现在列表top。

You can switch to the “List” view using the tab bar at the bottom of the “Beacons in range” screen.//不会翻译

显示进入通知

在一定的时间中做的动作,我们来添加一个通知,表示用户进入beacons的范围。

首先我们在MyApplication添加一个辅助方法

public void showNotification(String title,String message)

{

Intent notifyIntent=new Intent(this,MainActivity.class);

notifyIntent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

PendingIntent pendingIntent=PendingIntent.getActivities(this,0,new Intent[]{notifyIntent},PendingIntent.FLAG_UPDATE_CURRENT);

Notification notification=new Notification.Builder(this).setSmallIcon(android.R.drawable.ic_dialog_info)

.setContentTitle(title)

.setContentText(message)

.setAutoCancel(true)

.setContentIntent(pendingIntent)

.build();

notification.defaults|=Notification.DEFAULT_SOUND;

NotificationManager notificationManager=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);notificationManager.notify(1,notification);

}

现在我们获取一个简单的字符信息

// find this line:

beaconManager=new BeaconManager(getApplicationContext());

// add this below:

beaconManager.setMonitoringListener(newBeaconManager.MonitoringListener(){

@Override

public void  onEnteredRegion(Region region,List<Beacon>list){

showNotification("Your gate closes in 47 minutes.","Current security wait time is 15 minutes, "+"and it's a 5 minute walk from security to the gate. "+"Looks like you've got plenty of time!");

}

@Override

public void  onExitedRegion(Region region)

{

// could add an "exit" notification too if you want (-:

}

});

测试监控  flip to sleep

运行你的应用到你的app上,当你到Beacon范围内的时候,进入事件立即触发.

但是不能每一次都进入退出出发对应的事件。

所以还有一种模式 Beacon休眠

1、打开你的app找到你的Beacon列表,点击其中一个Beacon

2、如果你没有登录会要求你登陆,这是作为一个安全证书,你要到你的邮箱设置你的app权限

3、查看剩余电池寿命

4、找到Flip to Sleep Mode,并设置它

5、回到列表,断开Beacon连接。

一旦离开Beacon范围还要30秒才能反应过来。这是不可改的


 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容