android.system.ErrnoException: open failed: EPERM (Operation not permitted)

android 10(Q)开始增加了沙盒机制,不能直接把文件保存到/sdcard目录下,只能保存到APP专属目录下;AndroidManifest.xml在标签下增加属性【android:requestLegacyExternalStorage="true"】可以暂时保存到/sdcard路径下,但是Android11开始就失效了

我们可以通过Context的getExternalFilesDir(null)方法获取APP专属目录,例如:/storage/emulated/0/Android/data/com.example.myapplication/files如果需要把图片保存到系统相册里可以参考下面代码:

val bitmap = BitmapFactory.decodeResource(resources, R.drawable.image_03)

val values = ContentValues();

values.put( MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_PICTURES + File.separator + "MyApplication"); //在图库里显示的文件夹名:MyApplication

values.put(MediaStore.MediaColumns.DISPLAY_NAME, "test");

values.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg");

values.put(MediaStore.MediaColumns.DATE_ADDED, System.currentTimeMillis() / 1000);

values.put(MediaStore.MediaColumns.DATE_MODIFIED, System.currentTimeMillis() / 1000);

values.put(MediaStore.MediaColumns.IS_PENDING, 1);

val resolver = contentResolver;

val uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

val out = resolver.openOutputStream(uri!!)

bitmap.compress(Bitmap.CompressFormat.JPEG, 50, out)

values.clear()

values.put(MediaStore.MediaColumns.IS_PENDING, 0)

values.putNull(MediaStore.MediaColumns.DATE_EXPIRES)

resolver.update(uri, values, null, null)

相关推荐
louisgeek2 小时前
Git 根据不同目录设置不同账号
android
qq_390934743 小时前
MySQL中的系统库(简介、performance_schema)
android·数据库·mysql
whysqwhw4 小时前
Kotlin Flow 实现响应式编程指南
android
二流小码农4 小时前
鸿蒙开发:一文了解桌面卡片
android·ios·harmonyos
每次的天空4 小时前
Android第十七次面试总结(Java数据结构)
android·java·面试
梁同学与Android4 小时前
Android --- Handler的用法,子线程中怎么切线程进行更新UI
android·handler·子线程更新ui·切换到主线程
Fastcv4 小时前
这TextView也太闪了,咋做的?
android
恋猫de小郭4 小时前
iOS 26 beta1 重新禁止 JIT 执行,Flutter 下的 iOS 真机 hot load 暂时无法使用
android·前端·flutter
我命由我123455 小时前
Android Studio 问题:Android Studio 一直开在 Updating indexes
android·java·ide·java-ee·android studio·android jetpack·android-studio
CheungChunChiu5 小时前
如何使用 IP 地址修改 Android 的 Captive Portal 校验 URL
android·网络协议·tcp/ip