应用程序因缺少权限请求而崩溃[重复]

问题描述 投票:0回答:1

我在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被认为是危险的许可以及精细的位置吗?因此,我应该在运行时请求COARSE LOCATION的权限吗?

android permissions crash geolocation
1个回答
1
投票

ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION都是危险的许可。

从NetworkProvider获取位置时,需要ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION。

而,

从Gps Provider获取位置时,需要ACCESS_FINE_LOCATION。

因此,如果您从NetworkProvider以及GpsProvider获得位置,您必须在ACCESS_FINE_LOCATION中添加AndroidManifest.xml权限,

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
© www.soinside.com 2019 - 2024. All rights reserved.