书柜情感网
您的当前位置:首页定位权限是什么意思

定位权限是什么意思

来源:书柜情感网


定位权限

api版本权限使用说明
<23ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION无需动态请求,直接注册使用位置权限可后台运行
>=23 < 29ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION需要动态请求权限,有“允许” / “拒绝”选项 可后台运行
>=29ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION需要动态请求权限,有“始终允许” /“使用时允许”/ ”拒绝” 选项 只能前台运行
>=29ACCESS_BACKGROUND_LOCATION需要动态请求权限,有“允许” / ”拒绝” 选项 可后台运行,申请此权限要同时申请或已申请到ACCESS_COARSE_LOCATION 或ACCESS_FINE_LOCATION至少一种后台执行定位方能成功
>=30ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION需要动态请求权限,有“使用时允许” /“仅本次使用时允许”/ ”拒绝” 选项 只能前台运行(注意:无“始终允许”权限了)
>=30ACCESS_BACKGROUND_LOCATION需要动态请求权限申请,此权限需要已申请到ACCESS_COARSE_LOCATION 或ACCESS_FINE_LOCATION至少一种后台执行定位方能申请,申请时不会弹对话窗和任何其它提示,会直接拉起应用的定位权限设置

ACCESS_BACKGROUND_LOCATION补充说明:1.targetSdkVersion<29时,申请了两前台权限,则默认给予也有后台权限;若在<29的系统版本调用单独申请ACCESS_BACKGROUND_LOCATION,则会总是拒绝状态(无论是判断还是申请),申请也不会弹权限框。因此需要判断系统版本来决定调不调BACKGROUND权限申请2.targetSdkVersion>=29时,后台权限需要前台权限至少有一个权限申请且被同意了,才可以单独申请后台权限,如果没有获得ACCESS_COARSE_LOCATION 或ACCESS_FINE_LOCATION至少一种权限,而直接只申请ACCESS_BACKGROUND_LOCATION则系统不会展示权限申请框,回调权限标为拒绝3.targetSdkVersion>=29时,如果ACCESS_COARSE_LOCATION 或ACCESS_FINE_LOCATION至少一种权与ACCESS_BACKGROUND_LOCATION同时申请,当用户选“使用时允许”时,则BACKGROUND权限会被标为拒绝返回。若用户选“允许”、解决用户选择使用时允许的办法,是再拒绝时再次申请权限,系统弹出“后台定位”告之用户。

// for... 得出 denied permissions String[] deniedPermissions = xxxx; if (deniedPermissions .length == 1 && Manifest.permission.ACCESS_BACKGROUND_LOCATION.equals(permissions[0]) { requestPermission(activity, new String[]{Manifest.permission.ACCESS_BACKGROUND_LOCATION}, REQ_ONLY_BACKGROUND);}
显示全文