应用程序因缺少权限请求而崩溃

App crashes due to missing permission request

我在 Firebase 的崩溃报告部分收到了以下运行时异常:

java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.

所述,异常可以通过在运行时请求权限来解决。

然而,真正让我烦恼的是,在我的清单文件中我只请求 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 的权限?

ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION都是危险权限

Either ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION is required when you are getting location from NetworkProvider.

同时,

ACCESS_FINE_LOCATION is required when you are getting location from GpsProvider.

因此,如果您从 NetworkProviderGpsProvider 获取位置信息,您还必须在 AndroidManifest.xml

中添加 ACCESS_FINE_LOCATION 权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />