ACCESS_FINE_LOCATION无效

Bol*_*boa 6 android google-maps react-native react-native-android

以下是我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>
Run Code Online (Sandbox Code Playgroud)

如您所见,我添加了获取位置信息所需的适当权限.但是,当我运行我的应用程序时,我得到一个奇怪的错误...

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
Run Code Online (Sandbox Code Playgroud)

我已经添加了这个,AndroidManifest.xml所以我为什么会收到这个错误.我尝试重启Android Studio.我试过从模拟器中擦除数据.我试过Gradle - > Clean.这些都没有帮助.这里发生了什么?

有可能我的Android模拟器阻止GPS或什么?

ELI*_*ITE 7

您是否尝试过在运行时询问权限

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);
}
Run Code Online (Sandbox Code Playgroud)

您可以在运行时检查此站点上的详细信息请求权限

这是你要求用户在android 6.0之后在运行时授予权限的方式

您也可以检查Android 6.0权限错误答案.

希望它能帮到你.


Too*_*dos 5

你需要的是运行时权限。从技术上讲,从操作系统 6 开始,清单权限没有任何意义。

谷歌“android运行时gps权限”,你会得到大量关于该做什么和为什么做的答案。