Android M,不要求每次启动存储权限

时间:2015-09-27 10:59:05

标签: android permissions storage android-6.0-marshmallow

我的应用需要访问每个活动附近的用户存储空间。如何在不使应用程序在每个应用程序启动时询问使用新的Android M权限模型访问它的权限的情况下访问存储? (读写)

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您不想在每个应用启动时提示用户"给予内存访问权限以便能够执行任何操作",那么就不要这样做。如果requestPermissions()返回checkSelfPermission(),则只需致电PERMISSION_DENIED

@Override
public void onCreate(Bundle icicle) {
  if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)==
    PackageManager.PERMISSION_GRANTED) {
    init();
  }
  else {
    requestPermissions(new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE },
      REQUEST_STORAGE);
  }
}

(显示了本机API Level 23方法;您可能希望使用ContextCompat and ActivityCompat`来实现向后兼容性)

或者,如果用户在需要requestPermissions()的用户界面中执行了一些积极的操作(例如,点击了操作栏项)并且您还没有获得该权限,则只能致电WRITE_EXTERNAL_STORAGE