目录

开启定位后没有定位授权的弹窗

问题现象

应用在启用定位功能时,未弹出请求授权的提示,导致定位未能成功。

背景知识

应用在使用Location Kit系统能力前,需要检查是否已经获取用户授权访问设备位置信息。如未获得授权,可以向用户申请需要的位置权限。系统提供的定位权限有:

问题定位

  1. 查看module.json5配置文件中是否已经申请了ohos.permission.LOCATION定位权限。也可以通过查看对应时间点的hilog日志,在用户提供的日志中搜索权限ohos.permission.LOCATION,返回结果flag=0表示权限请求的结果为未授权或权限不存在。
    [GetPermissionFlag:386]GetPermissionFlag called, tokenID: xxxxxxxxx, permissionName: ohos.permission.LOCATION
    [GetPermissionFlag:312]Result from server()error=0, flag=0)
  2. 申请了权限之后需要查看requestPermissionsFromUser()方法中是否向用户申请授权。

分析结论

  1. 未配置定位权限。
  2. 未向用户申请授权,如果没有授权用户收不到定位授权的弹窗无法获取定位信息。

修改建议

  1. 在module.json5中配置ohos.permission.LOCATION定位权限,可参考:申请位置权限开发指导。
  2. 使用requestPermissionsFromUser()方法向用户申请授权。