targestsdk低于23(20)的SecurityException

时间:2016-06-27 10:46:02

标签: android

我收到了这个错误:

Non-fatal Exception: java.lang.SecurityException
Client must have ACCESS_FINE_LOCATION permission to request PRIORITY_HIGH_ACCURACY locations.

我的清单中有这些权限:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

我从未经历过这个错误,直到android 6.(它实际上只发生过一次Android 5。)

事情是我的targestSdk低于23,它是20,所以我想我不应该遇到这种或问题。

2 个答案:

答案 0 :(得分:0)

我想你是在6.0+模拟器上运行它,你的targetSdkVersion为23或更高。

在这种情况下,ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATIONthe Android 6.0 runtime permission system的一部分。修改您的应用程序以参与此系统,或将targetSdkVersion降至23以下。

答案 1 :(得分:0)

在Android 6上可能会发生这种情况。如果应用程序是使用低于23的SDK构建的,则开发人员无权访问检查权限API。在Android 6上安装此类应用程序时,所有权限都设置为true。但是,手机用户仍然可以进入设置并关闭权限(当权限被取消时,他会弹出应用程序可能会崩溃,因为它与权限撤销不兼容)。

您可以更新您的应用(这是更好的选择),或者只是保持问题原样。