[英]No permissions granted on Android emulator
我寫了一個簡單的Hello World應用程序來調試我遇到的一些權限問題。
問題是我的應用無法獲得使用任何內容的權限。 是的,我正在使用
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
是的,我把那個標簽放在AndroidManifest.xml中的<manifest>
如果我從清單中刪除所有<uses-permission>
標記並轉到Settings > Apps > TestApp
,則表示沒有請求權限
如果我重新放入標簽,則說沒有授予權限
如果我在實際設備上進行調試,它會說權限存在,所以看起來這個問題只發生在模擬器上! 但是,當我使用相同的模擬器從developer.android.com運行android-play-location/LocationUpdates
項目時它也有效,所以可能我的項目設置有問題。
有任何想法嗎?
如果我重新放入標簽,則說沒有授予權限
這是因為您在Android 6.0上進行測試,而您的targetSdkVersion
設置為23。
如果我在實際設備上進行調試,它會說權限存在,所以看起來這個問題只發生在模擬器上!
不,它僅在Android 6.0+上發生。
但是,當我使用相同的模擬器從developer.android.com運行android-play-location / LocationUpdates項目時它也有效,所以可能我的項目設置有問題。
該項目可能有一個低於23的targetSdkVersion
。
ACCESS_FINE_LOCATION
由Android 6.0運行時權限系統管理 。 更新您的應用程序以使用該系統,或將targetSdkVersion
降至23以下,直到您准備好這樣做。
如果你在M上運行,只需要請求位置許可
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && getActivity().checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, LOCATION_PERMISSION);
}else{
//Do things as usual
}
等待結果
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] result){
super.onRequestPermissionsResult(requestCode, permissions, result);
if(requestCode == LOCATION_PERMISSION && result[0] == PackageManager.PERMISSION_GRANTED){
//do things as usual init map or something else when location permission is granted
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.