【发布时间】:2018-06-12 11:06:50
【问题描述】:
我在 Firebase 的崩溃报告部分收到以下运行时异常:
java.lang.SecurityException:“gps”位置提供程序需要 ACCESS_FINE_LOCATION 权限。
正如this answer 所说,异常可以通过在运行时请求权限来解决。
然而,真正困扰我的是,在我的 Manifest 文件中,我只请求 COARSE LOCATION 权限,而 FINE LOCATION 从来没有。
AndroidManifest.xml
... // other permissions
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
... // no sign of fine location
为什么缺少权限会引发这样的异常?
注意:这是该应用自启动以来首次崩溃。崩溃发生在装有 Android 4.4.2 的 ALLVIEW VivaH7 API 19 上。 (在任何其他设备或 API 上还没有类似的崩溃)
此外,COARSE LOCATION 是否与 FINE LOCATION 一样被视为危险许可?因此,我应该在运行时请求 COARSE LOCATION 的权限吗?
【问题讨论】:
-
您不能使用只有课程位置的 gps 提供程序。如果您使用 gps,则必须请求 ACCESS_FINE_LOCATION。如果你不需要 gps 并且只需要网络位置,那么你可以使用 ACCESS_COARSE_LOCATION。
-
@DanielNugent 我明白,我以某种方式记住了它们,因此是错误的。感谢和抱歉给您带来的麻烦。
标签: android permissions crash geolocation