Location Kit 定位服务
位置子系统使用多种定位技术提供服务,如GNSS定位、基站定位、WLAN/蓝牙定位(基站定位、WLAN/蓝牙定位后续统称“网络定位技术”);通过这些定位技术,无论用户设备在室内或是户外,都可以准确地确定设备位置。
运作机制
位置能力作为系统为应用提供的一种基础服务,需要应用在所使用的业务场景,向系统主动发起请求,并在业务场景结束时,主动结束此请求,在此过程中系统会将实时的定位结果上报给应用
开发步骤
1:配置权限
// 位置信息 { "name": "ohos.permission.APPROXIMATELY_LOCATION", "reason": '$string:permission_reason_location', "usedScene": {} }, { "name": "ohos.permission.LOCATION", "reason": '$string:permission_reason_location', "usedScene": {} },
2:用户手动授权
//需要申请的权限名 private permissions: Permissions[] = ['ohos.permission.APPROXIMATELY_LOCATION','ohos.permission.LOCATION']; //调用用户授权方法,同时利用try-catch捕获异常 try { await PermissionManager.requestPermissions(this.permissions) promptAction.showToast({ message: '权限获取成功' }) } catch (e) { promptAction.showToast({ message: '权限获取失败' }) } //封装获取权限的方法 async requestPermissions(permissions: Permissions[]) { // 程序控制访问对象 const atManager = abilityAccessCtrl.createAtManager() // 核心Api,拉起弹框,向用户申请权限,返回值是authResults: Array<number>和permissions: Array<string>; const requestResult = await atManager.requestPermissionsFromUser(getContext(), permissions)