地理围栏,打造智能生活新边界

随着智能手机和其他移动设备的普及,用户对基于位置获取个性化服务的需求大幅增加,例如用户进入商圈范围并停留操作一段时间后,智能触发向用户推送该商圈吃、喝、玩、乐的优惠活动消息;又如当用户到达非常驻地的机场时触发围栏,向用户推送询问是否需要预定机场附近的酒店的消息,从而第一时间洞悉用户潜在需求并提供相关服务。

目前市面上大多数第三方消息推送服务商,通常无法将推送范围精确到某个商圈或较小的区域。而HarmonyOS SDK位置服务(Location Kit)的地理围栏技术可以很好地弥补这一不足。

地理围栏就是用一个虚拟的栅栏围出一个虚拟地理边界,当手机进入、离开或在这个围起来的特定地理区域内活动时,手机可以自动接收通知和警告消息。将地理围栏和消息推送相结合,即可实现对特定区域人群的精准消息推送。

比如,当目标受众走进某个商圈附近时,一款生活服务类App将会向他们推送"商圈内多家餐厅正在打折,点击查看优惠详情"的消息,这样可以及时向用户推送与他们当前位置和需求相关的信息,,增加用户的购买意愿。地理围栏技术可以帮助App更精确地定位目标用户,提高推送的精准度和效果。

地理围栏技术也提供了更精确的目标定位能力。比如,在安全监管方面,可以设置围栏以设置特定区域内的活动,提升安全监控和应急响应。在行业场景中,针对物流运输行业,可用于跟踪货物在运输过程中的位置,提醒或者通知相关人员货物的抵达或者离开;随着智能城市和物联网技术的兴起,地理围栏技术也被广泛应用于城市管理、智能交通、环境监测等领域。

功能优势

系统级围栏,围栏功耗低

App休眠仍能直接唤醒,围栏检测进程常驻,避免受后台应用影响

围栏范围:支持半径200米到10公里范围

自定义围栏检测

围栏数量不受限制,且可以直接选择商圈围栏

开发步骤

1.使用地理围栏功能,需要有权限ohos.permission.APPROXIMATELY_LOCATION,位置权限申请的方法和步骤见申请位置权限开发指导

2.导入geoLocationManager模块、wantAgent模块和BusinessError模块

import { geoLocationManager } from '@kit.LocationKit';
import { wantAgent } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit'

3.创建WantAgentInfo信息。

场景一:创建拉起Ability的WantAgentInfo信息。

let wantAgentObj:_wantAgent|null = null; // 用于保存创建成功的wantAgent对象,后续使用其完成触发的动作。

// 通过WantAgentInfo的operationType设置动作类型
let wantAgentInfo:wantAgent.WantAgentInfo = {
    wants: [
        {
            deviceId: '',
            bundleName: 'com.example.myapplication',
            abilityName: 'EntryAbility',
            action: '',
            entities: [],
            uri: '',
            parameters: {}
        }
    ],
    operationType: wantAgent.OperationType.START_ABILITY,
    requestCode: 0,
    wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG]
};

场景二:创建发布公共事件的WantAgentInfo信息。

let wantAgentObj:_wantAgent|null = null; // 用于保存创建成功的WantAgent对象,后续使用其完成触发的动作。

// 通过WantAgentInfo的operationType设置动作类型
let wantAgentInfo:wantAgent.WantAgentInfo = {
    wants: [
        {
            action: 'event_name', // 设置事件名
            parameters: {},
        }
    ],
    operationType: wantAgent.OperationType.SEND_COMMON_EVENT,
    requestCode: 0,
    wantAgentFlags: [wantAgent.WantAgentFlags.CONSTANT_FLAG],
}

4.调用getWantAgent()方法进行创建WantAgent。

并且在获取到WantAgent对象之后调用地理围栏接口添加围栏,当设备进入或者退出该围栏时,系统会自动触发WantAgent的动作。

// 创建WantAgent
wantAgent.getWantAgent(wantAgentInfo, (err, data) => {
    if (err) {
      console.error('getWantAgent err=' + JSON.stringify(err));
      return;
    }
    console.info('getWantAgent success');
    wantAgentObj = data;
    let requestInfo:geoLocationManager.GeofenceRequest = {'scenario': 0x301, "geofence": {"latitude": 31.12, "longitude": 121.11, "radius": 100, "expiration": 10000}};
    try {
        geoLocationManager.on('gnssFenceStatusChange', requestInfo, wantAgentObj);
    } catch (err) {
        console.error("errCode:" + JSON.stringify(err));
    }
});

注意:目前仅支持圆形围栏,并且依赖GNSS芯片的地理围栏功能,仅在室外开阔区域才能准确识别用户进出围栏事件。

综上所述,地理围栏技术在智能化和定位服务领域具有重要应用。对于开发者来说不仅是提升服务精准度和用户体验的利器,还可以优化资源管理,并创造新的商业价值和解决方案。

了解更多详情>>

访问位置服务联盟官网

获取位置服务开发指导文档

相关推荐
小强在此11 小时前
【基于开源鸿蒙(OpenHarmony)的智慧农业综合应用系统】
华为·开源·团队开发·智慧农业·harmonyos·开源鸿蒙
PlumCarefree15 小时前
基于鸿蒙API10的RTSP播放器(四:沉浸式播放窗口)
华为·harmonyos
中关村科金18 小时前
中关村科金推出得助音视频鸿蒙SDK,助力金融业务系统鸿蒙化提速
华为·音视频·harmonyos
小强在此1 天前
基于OpenHarmony(开源鸿蒙)的智慧医疗综合应用系统
华为·开源·团队开发·健康医疗·harmonyos·开源鸿蒙
奔跑的露西ly1 天前
【鸿蒙 HarmonyOS NEXT】popup弹窗
华为·harmonyos
OH五星上将1 天前
OpenHarmony(鸿蒙南向开发)——轻量和小型系统三方库移植指南(一)
嵌入式硬件·移动开发·harmonyos·openharmony·鸿蒙开发·鸿蒙移植
codes234577892 天前
鸿蒙开发之ArkTS 界面篇 一
harmonyos·arkts·harmonyos next·deveco-studio·鸿蒙界面·鸿蒙界面入门·鸿蒙 index.ets
HarmonyOS_SDK2 天前
免弹窗、预授权,默认界面扫码能力打造系统级扫码体验
harmonyos
追风小老头折腾程序2 天前
实战06-LazyForEach
harmonyos