集乐成能模块
▍****向用户动态申请授权的基础功能模块
获取装备地理位置信息的前提是用户同意提供相干敏感权限,这意味着我们必要向用户动态申请相干所需权限。而此次关于向用户动态申请授权的模块,笔者将把它们集成在Service目次下的两个TS文件里,分别是Applicant.ts与Detector.ts。
完成Demo的UI计划后,可以打开预览器查看界面效果
集乐成能模块
▍****向用户动态申请授权的基础功能模块
获取装备地理位置信息的前提是用户同意提供相干敏感权限,这意味着我们必要向用户动态申请相干所需权限。而此次关于向用户动态申请授权的模块,笔者将把它们集成在Service目次下的两个TS文件里,分别是Applicant.ts与Detector.ts。
之后,我们在Index.ets中对其进行调用
- //导入common
- import common from '@ohos.app.ability.common'
- //导入向用户发起权限申请的模块
- import Request_Permission_From_Users from 'ets/Service/Applicant'
- @Entry
- @Component
- struct Index {
- ......
-
- //获取上下文对象, 储存在成员变量context中
- private context = getContext(this) as common.UIAbilityContext
- //编写异步方法,调用之前已写好的模块文件Applicant
- async apply(){
- let res = await Request_Permission_From_Users(this.context)
- this.ifAccessible = res
- if(res){
- this.dialogController_Accessible.open()
- }else{
- this.dialogController_Inaccessible.open()
- }
- }
- build() {
- Column({space:10}) {
- ......
- Column(){
- Button('获取相关权限')
- .width('90%')
- .fontSize(18)
- .backgroundColor(Color.Pink)
- //调用异步方法apply
- .onClick(()=>{
- this.apply()
- })
- ......
- }
- .height('100%')
- .layoutWeight(4)
- .backgroundColor(Color.White)
- }
- .height('11%')
- .width('92%')
- ......
- }
- }
复制代码 获取装备地理信息的功能模块
此功能模块的目的是输出装备所在地的经度,纬度,海拔高度和都会名,以及装备的速率(应该是瞬时的)。这必要先获取装备所在的地理位置坐标,再将地理位置坐标转化为具体的地理描述(即国家,都会等)。
在Service目次下新建一个TypeScript文件(右键Service目次,选择新建,再选择TypeScript),将其定名为Geo
在编辑器中打开目次Geo.ts,参加以下代码以集成获取装备地理信息的功能,各代码块的具体功能已写注解
- //导入位置服务模块
- import geoLocationManager from '@ohos.geoLocationManager';
- //导入自定义的权限检查模块
- import Check_Access from 'ets/Service/Detector'
- //定义结点的标签
- const TAG_NODE0 = '------[Geo-Node0] '
- const TAG_NODE1 = '------[Geo-Node1] '
- const TAG_NODE2 = '------[Geo-Node2] '
- /*
- *结点函数1:获取用户设备当前所处位置的经度和纬度数据
- */
- async function Node1_Get_Geographical_Position(){
- //预定义返回值
- let output = {
- 'position_x':null,
- 'position_y':null,
- 'position_z':null,
- 'cityName':' 未知',
- 'speed':null,
- //结点函数的执行状态,默认为失败
- 'isFinished':false,
- 'error':'无'
- }
- //检查定位功能是否可用
- if(!geoLocationManager.isLocationEnabled()){
- console.inf
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |