ACCESS_FINE_LOCATION not working

匿名 (未验证) 提交于 2019-12-03 08:48:34

问题:

The following is my AndroidManifest.xml...

<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  <uses-sdk     android:minSdkVersion="16"     android:targetSdkVersion="22" />  <application   android:name=".BeaconApp"   android:allowBackup="true"   android:label="@string/app_name"   android:icon="@mipmap/ic_launcher"   android:theme="@style/AppTheme">   <activity     android:name=".MainActivity"     android:label="@string/app_name"     android:configChanges="keyboard|keyboardHidden|orientation|screenSize">     <intent-filter>         <action android:name="android.intent.action.MAIN" />         <category android:name="android.intent.category.LAUNCHER" />     </intent-filter>   </activity>   <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />     <meta-data         android:name="com.google.android.geo.API_KEY"         android:value="AIzaSyBqhOHH31FYObdzoVW9TmQsv62TOP0LSLI"/> </application> 

As you can see I added the proper permissions necessary to get location info. However, when I run my app, I get a strange error...

Looks like the app doesn't have permission to access location. Add the following line to your app's AndroidManifest.xml: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  throwLocationPermissionMissing ...etc 

I already added this in my AndroidManifest.xml so why am I getting this error. I tried restarting Android Studio. I tried Wiping Data from emulator. I tried Gradle -> Clean. None of these helped. What is going on here?

Is it possible that my android emulator is blocking GPS or something?

回答1:

Have you tried asking permissions at runtime..

int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,     Manifest.permission.ACCESS_FINE_LOCATION); if(permissionCheck != PackageManager.PERMISSION_GRANTED) {     // ask permissions here using below code     ActivityCompat.requestPermissions(thisActivity,             new String[]{Manifest.permission.ACCESS_FINE_LOCATION},             REQUEST_CODE); } 

You can check details on this site Requesting Permissions at Run Time

This is the way you ask user to grant permission at runtime after android 6.0

You can check Android 6.0 Permission Error answer also.

Hope it'll help you.



回答2:

what you need is the runtime permission. technically speaking, since os 6, the manifest permission doesnt mean anything.

google "android runtime gps permission" and you'll get tons of answers on what to do and why.



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!