鸿蒙NXET实战:高德地图定位SDK【获取Key+获取定位数据】(二)

 如何申请key

1、创建新应用

进入[控制台],创建一个新应用。如果您之前已经创建过应用,可直接跳过这个步骤。

2、添加新Key

在创建的应用上点击"添加新Key"按钮,在弹出的对话框中,依次:输入应用名名称,选择绑定的服务为“HarmonyOS平台”,输入AppID,如下图所示:

注意

1个KEY只能用于一个应用(多渠道安装包属于多个应用),1个Key在多个应用上使用会出现服务调用失败。

在阅读完高德地图API服务条款后,勾选此选项,点击“提交”,完成 Key 的申请,此时您可以在所创建的应用下面看到刚申请的 Key 了。

如何获取AppID

请在当前应用的Ablitiy中使用如下代码获取

let flag = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO;
let bundleInfo = bundleManager.getBundleInfoForSelfSync(flag)
let appId = bundleInfo.signatureInfo.appId;

注意事项

 1. 获取AppID之前需要先配置应用的签名信息。

 2. 目前通过DevEco Studio连接云真机获取到的appId不全,只获取到了"包名_", 使用云真机调试高德地图SDK时会导致鉴权不通过,正确的appId形式为:"包名_签名信息", 例如:com.amap.demo_BGtGgVB3ASqU7ar1nHkwX4s0nIexDbEwqNrVoatUDs17GrClWC7V2/zhoYh6tFQHAd5DASWVTEAgvZfzrEGljjs=

鸿蒙知识已更新前往gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md参考。

QQ浏览器截图20240320162546.png

获取定位数据

使用定位SDK之前,需要在 config.json 文件中进行相关权限设置,确保定位功能可以正常使用。

第一步,配置module.json5

首先,声明权限
..."requestPermissions": [{"name": "ohos.permission.APPROXIMATELY_LOCATION","usedScene": {"abilities": ["Harmony_location_demoAbility"],"when": "always"}},{"name": "ohos.permission.LOCATION","usedScene": {"abilities": ["Harmony_location_demoAbility"],"when": "always"}},{"name": "ohos.permission.LOCATION_IN_BACKGROUND","usedScene": {"abilities": ["Harmony_location_demoAbility"],"when": "always"}},{"name": "ohos.permission.INTERNET","usedScene": {"abilities": ["Harmony_location_demoAbility"],"when": "always"}},{"name": "ohos.permission.KEEP_BACKGROUND_RUNNING","usedScene": {"abilities": ["Harmony_location_demoAbility"],"when": "always"}}]
...

第二步,向工程中添加定位开发包

从ohpm仓库获取定位包,依次添加依赖。

"dependencies": {"@amap/amap_lbs_common": "1.0.0","@amap/amap_lbs_location": "1.0.0"
}

第三步,初始化定位

首先,设置Key

[获取Key]

AMapLocationManagerImpl.setApiKey("您的key");

初始化隐私政策

AMapLocationManagerImpl.updatePrivacyShow(AMapPrivacyShowStatus.DidShow, AMapPrivacyInfoStatus.DidContain, getContext(this))AMapLocationManagerImpl.updatePrivacyAgree(AMapPrivacyAgreeStatus.DidAgree, getContext(this))

创建AMapLocationManagerImpl

locationManger?: AMapLocationManagerImpl;
this.locationManger = new AMapLocationManagerImpl(this.context);

动态申请相关权限

  reqPermissionsFromUser(permissions: Array<Permissions>): void {let context: Context = getContext(this) as common.UIAbilityContext;let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();// requestPermissionsFromUser会判断权限的授权状态来决定是否唤起弹窗atManager.requestPermissionsFromUser(context, permissions).then((data: PermissionRequestResult) => {let grantStatus: Array<number> = data.authResults;let length: number = grantStatus.length;for (let i = 0; i < length; i++) {if (grantStatus[i] === 0) {// 用户授权,可以继续访问目标操作} else {// 用户拒绝授权,提示用户必须授权才能访问当前页面的功能,并引导用户到系统设置中打开相应的权限return;}}// 授权成功}).catch((err: BusinessError) => {console.error(`Failed to request permissions from user. Code is ${err.code}, message is ${err.message}`);})}

最后,开始请求相关定位信息

如:连续定位

 let listener: IAMapLocationListener = {onLocationChanged: (location) => {// todo something}, onLocationError: (error) => {// todo something}};let options: AMapLocationOption = {priority: geoLocationManager.LocationRequestPriority.FIRST_FIX,scenario: geoLocationManager.LocationRequestScenario.UNSET,timeInterval: 2,distanceInterval: 0,maxAccuracy: 0,allowsBackgroundLocationUpdates: true,locatingWithReGeocode: false,reGeocodeLanguage: AMapLocationReGeocodeLanguage.Chinese,isOffset: true
}this.locationManger?.setLocationListener(AMapLocationType.Updating,listener)
this.locationManger?.setLocationOption(AMapLocationType.Updating,options)
this.locationManger?.startUpdatingLocation()
//  停止定位
//  this.locationManger?.stopUpdatingLocation() 

如需在后台定位,则要在应用切入后台前调用开启后台定位任务

 this.locationManger?.startContinuousTask()

回到前台可以停止后台任务

 this.locationManger?.stopContinuousTask()

至此就可以看到定位相关信息。也可依据参考手册实现单次定位、最后位置等操作。

最后呢,很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

高清完整版请点击→《鸿蒙NEXT星河版开发学习文档》

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细资料鸿蒙(OpenHarmony )学习手册(共计1236页)与鸿蒙(OpenHarmony )开发入门教学视频,帮助大家在技术的道路上更进一步。

《鸿蒙 (OpenHarmony)开发学习视频》

图片

《鸿蒙生态应用开发V2.0白皮书》

图片

《鸿蒙 (OpenHarmony)开发基础到实战手册》

获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》

OpenHarmony北向、南向开发环境搭建

图片

《鸿蒙开发基础》

  1. ArkTS语言

  2. 安装DevEco Studio

  3. 运用你的第一个ArkTS应用

  4. ArkUI声明式UI开发

  5. .……

图片

《鸿蒙开发进阶》

  1. Stage模型入门

  2. 网络管理

  3. 数据管理

  4. 电话服务

  5. 分布式应用开发

  6. 通知与窗口管理

  7. 多媒体技术

  8. 安全技能

  9. 任务管理

  10. WebGL

  11. 国际化开发

  12. 应用测试

  13. DFX面向未来设计

  14. 鸿蒙系统移植和裁剪定制

  15. ……

图片

《鸿蒙开发实战》

  1. ArkTS实践

  2. UIAbility应用

  3. 网络案例

  4. ……

图片

 获取这份鸿蒙星河版学习资料,请点击→《鸿蒙NEXT星河版开发学习文档》

总结

鸿蒙—作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行!

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

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

相关文章

Muduo类详解之EventLoop

最核⼼的部分就是 EventLoop 、 Channel 以及 Poller 三个类&#xff0c;其中 EventLoop 可以看作是对业务线程的封装&#xff0c;⽽ Channel 可以看作是对每个已经建⽴连接的封装&#xff08;即 accept(3) 返回的⽂件描述符&#xff09; EventLoop class EventLoop { p…

解决SLF4J: Class path contains multiple SLF4J bindings.

JDK版本&#xff1a;jdk17 IDEA版本&#xff1a;IntelliJ IDEA 2022.1.3 SpringBoot 版本&#xff1a;v2.5.7 maven版本&#xff1a;3.6.3 文章目录 问题描述&#xff1a;原因分析&#xff1a;解决方案&#xff1a;参考资料&#xff1a; 问题描述&#xff1a; 当SpringBoot项目…

并发VS并行

参考文章 面试必考的&#xff1a;并发和并行有什么区别&#xff1f; 并发&#xff1a;一个人同时做多件事&#xff08;射击游戏队友抢装备&#xff09; 并行&#xff1a;多人同时处理同一件事&#xff08;射击游戏敌人同时射击对方&#xff09;

系统学习Python——装饰器:“私有“和“公有“属性案例-[Python不是关于控制]

分类目录&#xff1a;《系统学习Python》总目录 既然我已经用如此大的篇幅实现了Python代码的Private和Public属性声明&#xff0c;必须再次提醒&#xff0c;像这样为类添加访问控制不完全是Python的风格。实际上&#xff0c;除了充当装饰器使用的一个展示&#xff0c;大多数程…

解决ros2缺少cv_bridge包的问题——cv_bridge源码编译安装过程

安装流程 注意&#xff1a;cv_bridge 依赖boost 和 opencv 首先&#xff0c;和编译ros2功能包一样&#xff0c;先创建一个工作空间 mkdir -p cv_bridge_ws/src cd cv_bridge_ws/src然后&#xff0c;在src目录下&#xff0c;下载vision_opencv的源码,注意将-b galactic替换成…

制作 configure 文件极简教程

The magic behind configure, make, make install - How it works in Unix (thoughtbot.com) 如果要发布自己的源码&#xff0c;而自己的源码想通过configure&#xff0c;make&#xff0c;make install 编译安装&#xff0c;那么要为自己的源码建立 configure 文件&#xff0…

uniapp 安卓跳转到应用设置等页面

// #ifdef APP-PLUS const platform uni.getSystemInfoSync().platform if (platform android) {var main plus.android.runtimeMainActivity(); //获取activityvar pkName main.getPackageName();var Intent plus.android.importClass(android.content.Intent); var Set…

学习数据结构:算法的时间复杂度和空间复杂度

一、算法的复杂度 衡量一个算法的好坏&#xff0c;一般是从时间和空间两个维度来衡量的&#xff0c;即时间复杂度和空间复杂度。 时间复杂度主要衡量一个算法的运行快慢&#xff0c;而空间复杂度主要衡量一个算法运行所需要的额外空间。 算法的时间复杂度 算法中的基本操作的…

SAP BAS中Fiori开发的高阶功能(storyboard, navigation, guided development, variant)

1. 前言 在之前的几篇文章中&#xff0c;我介绍了SAP BAS的一些基本功能&#xff0c;包括账户申请&#xff0c;创建工作区&#xff0c;git的使用以及如何step-by-step去创建出你的第一个Fiori项目等等。在本篇中&#xff0c;我将进一步介绍一些在开发Fiori应用程序时会用到的高…

JAVA学习笔记19(面向对象编程)

1.面向对象编程 1.1 类与对象 1.类与对象的概念 ​ *对象[属性]/[行为] ​ *语法 class cat {String name;int age; }main() {//cat1就是一个对象//创建一只猫Cat cat1 new Cat();//给猫的属性赋值cat1.name "123";cat1.age 10; }​ *类是抽象的&#xff0c;…

前端使用正则表达式进行校验

一、定义 设计思想是用一种描述性的语言定义一个规则&#xff0c;凡是符合规则的字符串&#xff0c;我们就认为它“匹配”了&#xff0c;否则&#xff0c;该字符串就是不合法的。 在 JavaScript中&#xff0c;正则表达式也是对象&#xff0c;构建正则表达式有两种方式&#x…

【可用Claude Opus模型】Claude3国内镜像站,亲测完全超越GPT-4(可用Claude Opus,官网价值20刀)

#今天在知乎看到一个问题&#xff1a;“平民不参与内测的话没有账号还有机会使用Claude 3吗&#xff1f;” 从去年GPT大火到现在&#xff0c;关于GPT的消息铺天盖地&#xff0c;真要有心想要去用&#xff0c;途径很多&#xff0c;别的不说&#xff0c;国内GPT的镜像站到处都是…

如何实现一个自己的脚手架工具

如何实现一个自己的脚手架工具 创建自定义全局命令获取命令行的交互参数终端交互下载远程项目代码 创建自定义全局命令 在项目文件夹中创建一个bin文件夹&#xff0c;再去npm init 初始化项目&#xff0c;生成的package.json 里面就有一个bin的选项参数指定了命令和执行文件路…

有效的括号字符串

只想用一个栈解决&#xff0c;可惜一直解决不了&#xff0c;因为 * 的问题无法解决 看到标答用了两个栈&#xff0c;一个栈存储 ( 另一个栈储存 * 思路&#xff1a;当s[k] 为 ( 或 * 进栈 &#xff0c; 当s[k] 为 ) 时 &#xff0c; 优先左括号出栈&#xff08;因为*有…

探索LLaMA模型:架构创新与Transformer模型的进化之路

引言 在人工智能和自然语言处理领域&#xff0c;预训练语言模型的发展一直在引领着前沿科技的进步。Meta AI&#xff08;前身为Facebook&#xff09;在2023年2月推出的LLaMA&#xff08;Large Language Model Meta AI&#xff09;模型引起了广泛关注。LLaMA模型以其独特的架构…

视频批量爬虫下载工具|可导出视频分享链接|抖音视频提取软件

便捷的视频批量爬虫软件操作指南 抖音视频下载界面图解 主要功能&#xff1a; 关键词批量提取视频和单独视频提取&#xff0c;提取后下载功能。 功能解析&#xff1a; 1. 关键词批量采集视频的解析 对特定关键词进行搜索和视频提取&#xff0c;例如输入“汽车配件”&#x…

2024年洗地机综合实力排行榜:谁才是真正的洗地神器?

近年来&#xff0c;洗地机在行业里&#xff0c;它集合了扫地和拖地以及自动清洁和除菌的功能&#xff0c;备受人们的喜爱&#xff0c;尤其是平时忙于工作并没有多少时间清洁家务的用户&#xff0c;但是对于第一次接触洗地机的用户来说&#xff0c;怎么选购洗地机也是个问题&…

【P1303】 A*B Problem

A*B Problem 题目背景 高精度乘法模板题。 题目描述 给出两个非负整数&#xff0c;求它们的乘积。 输入格式 输入共两行&#xff0c;每行一个非负整数。 输出格式 输出一个非负整数表示乘积。 样例 #1 样例输入 #1 1 2样例输出 #1 2提示 每个非负整数不超过 1 0…

初识React(一)从井字棋游戏开始

写在前面&#xff1a; 磨磨唧唧了好久终于下定决心开始学react&#xff0c;刚刚接触感觉有点无从下脚...新的语法新的格式跟vue就像两种物种...倒是很好奇路由和store是怎么实现的了~v~&#xff0c;一点一点来吧&#xff01;&#xff01;&#xff01; (一)创建项目 使用vite…

【58. 最后一个单词的长度】

58. 最后一个单词的长度 给你一个字符串 s&#xff0c;由若干单词组成&#xff0c;单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 class Solution { public: int lengthOfLastWord(string s) …