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

news2024/9/20 6:11:14

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

目前市面上大多数第三方消息推送服务商,通常无法将推送范围精确到某个商圈或较小的区域。而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芯片的地理围栏功能,仅在室外开阔区域才能准确识别用户进出围栏事件。

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

了解更多详情>>

访问位置服务联盟官网

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2103591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024-MongoDB中国用户大会

周五下午7个小时高铁从深圳赶到上海,周六一天大会,周天飞回深圳。特种兵行动参加“2024-MongoDB中国用户大会”。,缓了两天终于把素材整理出来了。 这也是首次参加MongoDB相关专题会议,MongoDB出现在我接触的大多数项目中&#xf…

什么是法定计量校准?法定计量工作中常会有哪些问题?

什么是法定计量校准? 法制计量校准是以掌握计量和计量的基本内容,依法规划、监督、管理计量为基础,通过政府、企业、个人等多种参与方式和对计量违法行为的监督、处罚。 法制计量校准的目的是为了提高计量工作水平,促进国民经济、…

Type-C接口 未来发展趋势

随着科技的进步,Type-C接口已经逐渐代替了传统的USB接口,Type-C接口的普及将会给我们生活带来很多的便利。 Typez-C接口主要包括正反可插,传输速率高,支持快充协议,安全性高,体积小巧,支持高速…

集团企业主数据管理项目实施步骤及要点

为打破数据孤岛,提升数据治理水平,某省级投资集团率先构建了主数据平台,并成功实现了财务系统、合同系统、人力资源系统及OA门户系统等多系统的无缝对接。通过主数据平台提供的标准化接口,这些关键业务系统能够高效获取所需的主数…

车辆违停智能监测摄像头

车辆违停是城市交通管理中常见的问题,给道路交通秩序和行车安全带来了一定的影响。为了有效监测和处置车辆违停行为,智能监测摄像头被广泛应用于城市道路和停车场等场所。这种摄像头结合了图像识别技术和人工智能算法,能够实时监测并识别违停…

3600关成语填字APP游戏ACCESS\EXCEL数据库

成语类的APP游戏在最近一两年内非常的火爆,其主要原因是几乎所有中国人都能够冲个几十上百关,学习和趣味共享。看图猜成语类的数据之前已经弄到过很多,今天这份成语填字的倒是头一份。 该数据做成的APP效果如下: 数据以\符号分隔…

QGIS编译好后 启动报错qgis.app_app.dll not find lqgis.envfor correct environment paths

报错:qgis.app_app.dll not find lqgis.envfor correct environment paths 一,把 qgis.exe 修改成qgis-bin.exe 二,拷贝osggeo4w下面的qgis-bin.env 文件到当前执行目录

24最新『ComfyUI』入门到入坟全套教程!!看到就是赚到!赶紧收藏!

前言 本文简介 Stable Diffusion WebUI 应该是大多数人第一次接触 SD 绘画的工具,这款工具简单易上手,但操作流程相对固定。如果你想拥有更自由的工作流,可以试试 ComfyUI。而且很多新的模型和功能在刚出现时 ComfyUI 的支持度都比较高&…

IDEA 更新后打开Java项目无法Run

问题 IDEA新建了Java项目,然后更新IDEA之后,没有勾选任何删除配置,但是在新版本打开项目时无法使用Run。 分析 首先这不是Edit Configurations能解决的问题,根因也不是。 打开Project Structure发现除了Name以外的配置都是不可用…

【Python入门】教你安装2024最新的Python,最新版全面教程!!!

2024安装Python的详细教程 一、准备工作 确定Python版本: 访问Python官网(Welcome to Python.org),查看最新的稳定版本。在撰写本文时(2024年9月),Python 3.x 是当前的主要版本,其…

linux 硬件 arm架构 汇编语言

1.cortex 1. Cortex-A 低功耗 消费类 ARM Cortex-A 系列处理器是一种广泛应用于 移动设备、嵌入式系统和物联网的高效能处理器,因其低功耗和高性能的特点而受到青睐。 2. Cortex-R 实时性 Cortex-R处理器针对高性能实时应用,例如硬盘控制器(或…

在 Cloud TPU 上训练 DLRM 和 DCN (TF 2.x)

本教程介绍如何训练 DLRM 和 DCN v2 排名模型, 用于预测点击率 (CTR) 等任务。查看以下语言版本的备注 设置以运行 DLRM 或 DCN 模型,了解如何设置参数 来训练 DLRM 或 DCN v2 排名模型。 模型输入是数值特征和分类特征,输出是标量 &#xf…

【HuggingFace Transformers】LlamaRotaryEmbedding源码解析

LlamaRotaryEmbedding源码解析 1. LlamaRotaryEmbedding类 介绍2. 逆频率向量3. LlamaRotaryEmbedding类 源码解析3.1 transformers v4.44.2版3.2 transformers v4.41.1版 1. LlamaRotaryEmbedding类 介绍 在LLaMa模型中,LlamaRotaryEmbedding类实现了Rotary Posit…

Elasticsearch 向量数据库本地部署 及操作方法

elasticsearch是个分布式向量数据库,支持多种查找模式。此外还拥有 Metadata、Filtering、Hybrid Search、Delete、Store Documents、Async等能力。本文仅是记录本地测试途中遇到的问题。 一,环境部署 下载软件 首先去官网,选择适合平台下…

Kafka-设计原理

ControllerLeader - PartitionRebalance消息发布机制HW与LEO日志分段 Controller Kafka核心总控制器Controller:在Kafka集群中会有一个或者多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理…

Hyper-v 安装 centOS

一.Hyper-v安装 1. 右键此电脑,点击属性,查看自己的window版本 如果是专业版或者企业版,则无需额外操作,如果是家庭版,则需要先运行一个脚本来进行安装。 参考这一篇:window10 家庭版如何开启Hyper-v-CSDN…

FPGA开发:初识FPGA

FPGA是什么? FPGA的全称是现场可编程门阵列(Field Programmable Gate Array),一种以数字电路为主的集成芯片,属于可编程逻辑器件PLD的一种。简单来说,就是能用代码编程,直接修改FPGA芯片中数字…

OceanBase 关于 place_group_by HINT的使用

PLACE_GROUP_BY Hint 表示在多表关联时,如果满足单表查询后直接进行group by 的情形下,在跟其它表进行关联统计,减少表内部联接。 NO_PLACE_GROUP_BY Hint 表示在多表关联时,在关联后才对结果进行group by。 使用place_group_by …

二百五十九、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(一般JSON)

一、目的 由于部分数据类型频率为1s,从而数据规模特别大,因此完整的JSON放在Hive中解析起来,尤其是在单机环境下,效率特别慢,无法满足业务需求。 而Flume的拦截器并不能很好的转换数据,因为只能采用Java方…

启动.cmd文件一闪而过,看不到报错信息

在window的环境中,双击.cmd文件,有报错信息,但是一闪而过 例如启动zookeeper时,没有zoo.cfg文件会报错,但是启动一闪而过,你看不到报错信息 有文本工具编辑cmd文件,在最后添加 pause 再次启…