Java 呼叫需要权限,用户在尝试获取位置时可能会拒绝该权限
我看了其他问题,但找不到答案。 不管怎么说,我正在尝试获取设备的位置,但它无法工作。我使用的是安卓5.0(API 21) 错误发生在.getLastKnowLocation()中。它说我应该检查权限,但我已经将权限添加到Android清单中Java 呼叫需要权限,用户在尝试获取位置时可能会拒绝该权限,java,android,android-studio,geolocation,Java,Android,Android Studio,Geolocation,我看了其他问题,但找不到答案。 不管怎么说,我正在尝试获取设备的位置,但它无法工作。我使用的是安卓5.0(API 21) 错误发生在.getLastKnowLocation()中。它说我应该检查权限,但我已经将权限添加到Android清单中 uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permissi
uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
但当我运行它时,它总是返回,就像我没有权限一样。您需要启用运行时权限
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION},1200);
如果你只想让你的应用程序运行到API级别21,你可以在你的模块级别
build.gradle
文件中设置targetSdkVersion 21
,这将使你面临的错误消失
如果/当您想要开始以API级别23或更高为目标时,除了在清单中声明权限外,还需要在运行时请求权限。检查Android运行时权限,如果在创建时未授予该权限,则调用该权限。虽然运行时权限实际上始于Android 6.0(API级别23)
uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.ACCESS_FINE_LOCATION},1200);