2016-12-04 14 views
4

以下是我AndroidManifest.xml ...ACCESS_FINE_LOCATION不工作

<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> 

正如你可以看到我需要添加適當的權限來獲得位置信息。然而,當我跑我的應用程序,我得到一個奇怪的錯誤...

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 

我已經在我的AndroidManifest.xml所以爲什麼我收到此錯誤添加此。我嘗試重新啓動Android Studio。我試圖從模擬器擦除數據。我嘗試了Gradle - > Clean。這些都沒有幫助。這裏發生了什麼?

有沒有可能我的android模擬器阻止GPS或什麼?

+0

你正在測試的設備上運行的是什麼版本的Android操作系統? – TooManyEduardos

+0

@TooManyEduardos設備是Nexus 6 API 25 ... Taget:Android 7.1.1(GOOGLE APIs) – Bolboa

+0

運行時權限示例代碼:http://stackoverflow.com/a/40142454/4409409 –

回答

5

你試過問權限在運行時..

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); 
} 

您可以查看詳細信息,在這個網站Requesting Permissions at Run Time

這是你問用戶後,Android 6.0

在運行時准予許可的方式

您也可以檢查Android 6.0 Permission Error也回答。

希望它能幫助你。

+0

我看到了,所以我把這個代碼在我的'MainActivity'?我目前正在使用react-native,不知道這是否重要 – Bolboa

+0

是的,您必須將此代碼放入您正在訪問位置的活動中。在'onCreate'方法中加入這個代碼 – ELITE

+0

還要注意,你必須檢查用戶是否通過重寫'onRequestPermissionsResult'方法 – ELITE

3

你需要的是運行時權限。從技術上講,從os 6開始,清單許可並不意味着什麼。

谷歌「Android運行時GPS權限」,你會得到很多答案,做什麼和爲什麼。