我使用這兩個權限在我的應用程序Android的位置的權限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
我已經加入清單中的權限。然而,當我調試到我的手機,我嘗試使用下面的函數來檢查權限:
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
Log.i("permission","done");
}
else
{
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
MY_PERMISSION_ACCESS_COARSE_LOCATION);
}
// The ACCESS_FINE_LOCATION is denied, then I request it and manage the result in
// onRequestPermissionsResult() using the constant MY_PERMISSION_ACCESS_FINE_LOCATION
if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[] { Manifest.permission.ACCESS_FINE_LOCATION },
MY_PERMISSION_ACCESS_FINE_LOCATION);
}
}
應用程序將進入第一個IF語句,而不是從用戶申請許可。 我以前沒有授予此應用程序的任何權限。 即使我只是在我的手機中調試並安裝應用程序,爲什麼權限會變成GRANTED?
由於運行時權限是添加在棉花糖而不是以前的版本,所以如果你已經在清單中添加權限,它會自動授予權限,甚至不會在運行時詢問權限,除非它是棉花糖設備 –
你'正在測試Android M,對吧? –
編號在銀河注5進行測試。 –