Android11Api30报java.lang.SecurityException异常
创始人
2024-08-20 10:00:10
0

在 Android 11 Api 30 上,若应用程序使用了 File 和 ProcessBuilder 等需要访问系统文件的 API,那么会出现 java.lang.SecurityException 异常。这是因为 Android 11 在文件系统方面进行了更严格的权限限制。

为了解决这个问题,可以使用新的 API 而不是 File 和 ProcessBuilder。例如,可使用 Storage Access Framework(SAF) API 来读取/写入文件。以下是一个使用 SAF API 来写入文件的示例:

Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TITLE, "file.txt");

startActivityForResult(intent, WRITE_REQUEST_CODE);

@Override public void onActivityResult(int requestCode, int resultCode, Intent resultData) { if (resultCode == Activity.RESULT_OK) { if (requestCode == WRITE_REQUEST_CODE) { Uri uri = null; if (resultData != null) { uri = resultData.getData(); try { OutputStream outputStream = getContentResolver().openOutputStream(uri); outputStream.write("Hello, world!".getBytes()); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } } }

这里,我们创建了一个 ACTION_CREATE_DOCUMENT 意图,并使用 startActivityForResult() 方法启动它。用户将在文档选择器中选择一个文件,并授予我们访问文件的权限。在 onActivityResult() 回调方法中,我们使用 getContentResolver().openOutputStream(uri) 方法获取文件的 OutputStream,然后将数据写入文件中。

请注意,这只是一个示例。实际上,您需要根据您的需求进行适当的修改。

相关内容

热门资讯

4分钟学习!wpk真吗(透视)... 4分钟学习!wpk真吗(透视)本来真的是有辅助开挂(哔哩哔哩)1)wpk真吗辅助插件:进一步探索wp...
十分钟辅助!枫叶辅助官网地址,... 十分钟辅助!枫叶辅助官网地址,微乐家乡麻将辅助(其实是真的辅助软件)-哔哩哔哩1、完成枫叶辅助官网地...
第三分钟学习!wpk作必弊是真... 第三分钟学习!wpk作必弊是真的吗(透视)原来真的是有辅助安装(哔哩哔哩)1)wpk作必弊是真的吗有...
七分钟安装!微乐陕西三代自建房... 七分钟安装!微乐陕西三代自建房挂,吉祥填大坑脚本小程序(好像真的是有辅助app)-哔哩哔哩亲,关键说...
六分钟步骤!wepoker透视... 六分钟步骤!wepoker透视最简单三个步骤(透视)都是有辅助脚本(哔哩哔哩)1、六分钟步骤!wep...
一分钟插件!边锋干橙眼ios辅... 一分钟插件!边锋干橙眼ios辅助,吉安中至小程序微信辅助(其实存在有辅助插件)-哔哩哔哩1、一分钟插...
五分钟方针!pokemmo手机... 五分钟方针!pokemmo手机脚本辅助器(透视)切实真的有辅助脚本(哔哩哔哩)1、pokemmo手机...
八分钟脚本!闲聚鱼虾蟹辅助器软... 八分钟脚本!闲聚鱼虾蟹辅助器软件,科乐辅助视频(确实真的是有辅助辅助)-哔哩哔哩闲聚鱼虾蟹辅助器软件...
第一分钟手筋!hhpoker有... 第一分钟手筋!hhpoker有辅助吗(透视)真是真的是有辅助安装(哔哩哔哩)1、实时hhpoker有...
九分钟辅助!竹间茶馆辅助,开心... 九分钟辅助!竹间茶馆辅助,开心茶苑13道辅助(切实真的是有辅助下载)-哔哩哔哩1)开心茶苑13道辅助...