2016-07-29 134 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

不,您不能在运行时添加清单中的权限 –

回答