gpt4 book ai didi

android - Lollipop 及以上版本的 sdcard 窗口只获得一次权限

转载 作者:搜寻专家 更新时间:2023-11-01 09:42:44 25 4
gpt4 key购买 nike

您好,我正在从 SD 卡中删除一些项目。在 Lollipop 中,我第一次请求许可和用户授予许可,但现在我不想每次都请求许可。这非常令人恼火,很多人都害怕这种行为。我怎样才能保存我的许可,即下次我不需要一次又一次地传递该 Intent

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);

谢谢

最佳答案

我给你一些代码来举例。请记住,您需要在 Android 6.0 上检查权限。 OnRequestPermission 是一种方法,当您有权限时,将在 grantResult 中执行代码,如果没有,您可以请求权限或说用户未授予权限的消息。并且此方法保存权限状态

@TargetApi(23)
public void checkStoragePermission() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
if (settingsDrawerFragment != null) {
settingsDrawerFragment.onPermissionGranted();
}
return;
}
if (this.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager
.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_CODE_EXTERNAL_STORAGE);
return;
}
if (settingsDrawerFragment != null) {
settingsDrawerFragment.onPermissionGranted();
}
}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[]
grantResults) {
switch (requestCode) {
case REQUEST_CODE_AUDIO_RECORD:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
startBrowseActivity();
} else {
Utils.showToast(this, getString(R.string.audio_permission_denied));
}
break;
case REQUEST_CODE_EXTERNAL_STORAGE:
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
if (settingsDrawerFragment != null) {
settingsDrawerFragment.onPermissionGranted();
}
} else {
if (settingsDrawerFragment != null) {
closeSettingsDrawer();
}
Utils.showToast(this, getString(R.string.storage_permission_denied));
}
break;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
break;
}
}

关于android - Lollipop 及以上版本的 sdcard 窗口只获得一次权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39199123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com