Android M,不是每次启动都询问存储权限
Android M, not ask every start for storage permission
我的应用程序需要几乎每个 activity 访问用户的存储空间。如何在不让应用程序在每次应用程序启动时询问使用新的 Android M 权限模型访问它的权限的情况下访问存储? (读写)
谢谢!
如果您不想提示用户 "on every app startup to give memory access to be able to do anything",则不要这样做。仅在 checkSelfPermission()
returns PERMISSION_DENIED
.
时调用 requestPermissions()
@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 级别 23 方法;您可能希望使用 ContextCompat and
ActivityCompat` 实现向后兼容性)
或者,如果用户在 UI 中做了一些需要 WRITE_EXTERNAL_STORAGE
的积极事情(例如,单击操作栏项目)并且您还没有许可。
我的应用程序需要几乎每个 activity 访问用户的存储空间。如何在不让应用程序在每次应用程序启动时询问使用新的 Android M 权限模型访问它的权限的情况下访问存储? (读写)
谢谢!
如果您不想提示用户 "on every app startup to give memory access to be able to do anything",则不要这样做。仅在 checkSelfPermission()
returns PERMISSION_DENIED
.
requestPermissions()
@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 级别 23 方法;您可能希望使用 ContextCompat and
ActivityCompat` 实现向后兼容性)
或者,如果用户在 UI 中做了一些需要 WRITE_EXTERNAL_STORAGE
的积极事情(例如,单击操作栏项目)并且您还没有许可。