2015-10-22 83 views
3

AndroidManifest.xml中有添加:?版本的Android M requestPermissions(ACCESS_COARSE_LOCATION),不顯示對話框

<uses-permission android:name="android.permisssion.ACCESS_COARSE_LOCATION"/> 

ActivityCompat.requestPermissions()

int permissionCheck = ContextCompat.checkSelfPermission(this, 
       Manifest.permission.ACCESS_COARSE_LOCATION); 
if (!(permissionCheck == PackageManager.PERMISSION_GRANTED)) { 

    // Should we show an explanation? 
    if (ActivityCompat.shouldShowRequestPermissionRationale(this, 
      Manifest.permission.ACCESS_COARSE_LOCATION)) { 

    } else { 
     // do request the permission 
     ActivityCompat.requestPermissions(this, 
       new String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 
       8); 
    } 
} 

onRequestPermissionsResult()

@Override 
public void onRequestPermissionsResult(int requestCode, 
     String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case 8: { 
      // grantResults[0] = -1 
      if (grantResults.length > 0 
       && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

      } else { 

      } 
      return; 
     } 
    } 
} 

requestPermissions(ACCESS_COARSE_LOCATION)不顯示任何對話框,並且onRequestPermissionsResult返回-1。

相反requestPermissions(Manifest.permission.CAMERA)工作正常。

另一個問題Android M 6.0 - Manifest.permission.WRITE_SETTINGS Error

+1

您是否嘗試第一次打開對話框?您是否檢查過「永不再做」選項? –

+0

重新安裝應用程序,第一次shouldShowRequestPermissionRationale()返回false,對話框仍然不顯示。 – qinmiao

+0

SRC Github上:HTTPS://github.com/captain-miao/Android_M_requestPermissions – qinmiao

回答

3

有一個在uses-permission名稱的拼寫錯誤,權限與此3 的「

變化:

<uses-permission android:name="android.permisssion.ACCESS_COARSE_LOCATION"/> 

這樣:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>