我正在尝试访问ACCESS_FINE_LOCATION
如果找不到访问权限ACCESS_COARSE_LOCATION
。所以我请求这两个权限,但他们给了我相同的对话框,要求位置权限。我知道它们都在同一组,但谷歌说:
Note:即使用户已经在同一组中授予了另一个权限,您的应用程序仍然需要显式请求它所需的每个权限。此外,在未来的 Android 版本中,权限分组可能会发生变化。您的代码不应依赖于特定权限位于或不位于同一组的假设。
这意味着我在一秒钟内请求这 2 个权限,这会导致连续出现 2 个对话框。这对我来说似乎不太用户友好。有没有更好的办法?
你不需要ACCESS_COARSE_LOCATION
定义时的权限ACCESS_FINE_LOCATION
允许。
来自 Android 文档:
请求用户权限
为了接收位置更新NETWORK_PROVIDER
or
GPS_PROVIDER
,您必须通过声明以下任一方式请求用户许可ACCESS_COARSE_LOCATION
or ACCESS_FINE_LOCATION
允许,
分别在您的 Android 清单文件中。例如:
<manifest>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
.......
</manifest>
如果没有这些权限,您的应用程序将在运行时失败
请求位置更新。
Note:如果您同时使用NETWORK_PROVIDER
and GPS_PROVIDER
, 然后
您只需要请求ACCESS_FINE_LOCATION
许可,因为
它包括两个提供商的许可。 (允许ACCESS_COARSE_LOCATION
仅包含许可NETWORK_PROVIDER
.)
请看https://developer.android.com/guide/topics/location/strategies.html https://developer.android.com/guide/topics/location/strategies.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)