2016-07-29 209 views
1

嘿,我使用23.下文請求允許爲

我要問用戶的應用程序,如果他們想使讀取觸點,所以我有

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

我想一個API級的選項使用此代碼在運行時

private void checkPermissions() { 
    if (ContextCompat.checkSelfPermission(this, 
      Manifest.permission.WRITE_CALENDAR) 
      != PackageManager.PERMISSION_GRANTED) { 
     // Should we show an explanation? 
     if (ActivityCompat.shouldShowRequestPermissionRationale(this, 
       Manifest.permission.WRITE_CALENDAR)) { 
      Log.d("ABC", "1"); 
      ActivityCompat.requestPermissions(this, 
        new String[]{Manifest.permission.WRITE_CALENDAR}, 
        MY_PERMISSIONS_REQUEST_READ_CONTACTS); 

     }else { 
      // No explanation needed, we can request the permission. 
      ActivityCompat.requestPermissions(this, 
        new String[]{Manifest.permission.WRITE_CALENDAR}, 
        MY_PERMISSIONS_REQUEST_READ_CONTACTS); 
      Log.d("ABC", "2"); 
     } 
    } 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, 
             String permissions[], int[] grantResults) { 
    switch (requestCode) { 
     case MY_PERMISSIONS_REQUEST_READ_CONTACTS: { 
      // If request is cancelled, the result arrays are empty. 
      if (grantResults.length > 0 
        && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
       Log.d("ABC", "GRANTED"); 

      } else { 
       Log.d("ABC", "Denied"); 
      } 
      return; 
     } 
    } 
} 

徵得他的許可,但如果我不包括它會自動拒絕該請求,如果我這樣做從來沒有需要問的權限。

我該如何做到這一點,所以聯繫人不包括在應用程序的權限,但我可以在運行時詢問他們?謝謝

+1

你不能做到這一點,你必須在清單中添加必需的權限。 –

+0

@AkshayBhat所以沒有辦法在運行時詢問權限而無需在安裝過程中使用它們? –

+0

不,您不能在運行時添加清單中的權限 –

回答