场景
情景感知服务能带来什么
作为音乐发烧友,闲下来的时候总想打开App,享受沉浸在音乐中的放松。然而,App推荐的歌单经常没法满足我的需要,如果App能根据我当前的情景状态,推送给我的歌曲恰好就是我当前最想听的,那该多好啊~
什么是情景感知服务?
情景感知服务(Awareness
Kit)能感知用户当前的时间、地理位置、活动状态、耳机状态、天气状况、环境光、车载连接状态、信标连接状态等情景,并通过能常驻后台运行的围栏能力向APP进行提醒,使APP能第一时间给用户提供精准和贴心的服务。上述情景感知能力还在不断扩充中,而且您可以自由组合这些感知能力,构建组合围栏,从而让APP的服务能力更加智能,更加精准。
在情景感知服务的支持下,App能给用户带来如下体验
l 每次连接上耳机(有线耳机、蓝牙耳机),手机通知栏会弹出音乐App通知,提示用户时候是否要启动音乐播放,或者是否要自动播放音乐
l 点击通知,可以打开音乐APP,并展示用户当前情境下最恰当的歌单
l 跑步开始,推荐节奏轻快歌单;跑步结束,推荐节奏缓场歌单
l 清晨起床,连接耳机,来点清新音乐;夜深人静,连接耳机,让静心的音乐让我舒缓
l 发动汽车,手机连接蓝牙车载,音乐App自动切换成车载模式,并主动询问是否播放各场景的行车音乐(白天、夜晚、雨天、晴天,推荐各不同)
l 不同的节日,应该有特别的节日音乐
同时,用户还可以通过各种感知能力的组合围栏,设置排除场景,避免给用户过多打扰
情景感知服务的优势
无需用户提前开启App,用户进入地理围栏范围后,即可后台激活App,触发通知。
无惧App进程被系统杀死,通过围栏服务,依然可接受到通知。
点击通知,即可前台激活APP,点击直接跳转App推荐界面。
通过组合围栏实现精准推送;也可避免在用户不需要的场景提供无效通知,避免频繁打扰。
开发前准备
Awareness Kit集成需要有如下3个关键步骤,可以参考华为开发者联盟的文档
-
AppGallery Connect配置
-
集成HMS Awareness SDK
-
配置混淆脚本
https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/awareness-preparation
代码开发关键步骤
1.创建耳机围栏
//创建一个感知耳机连接的围栏,当耳机处于连接状态时,此围栏的状态为true
AwarenessBarrier headsetBarrier = HeadsetBarrier.keeping(HeadsetStatus.CONNECTED);
//创建一个PendingIntent,当围栏状态改变的时候,会触发该PendingIntent,这里以发送广播为例
PendingIntent pendingIntent = PendingIntent.getBroadcast(context,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
//创建围栏的标签,后续可以通过标签查询或者删除对应围栏
String headsetBarrierLabel = "headset keeping connected label";
2.注册围栏
//把刚刚创建好的耳机围栏和它对应的label,pendingIntent注册给Awareness kit
Awareness.getBarrierClient(context).updateBarriers