确保已经请求了 WRITE_EXTERNAL_STORAGE 权限。可以使用以下代码在 AndroidManifest.xml 文件中请求权限:
另外,请确保您的应用程序配置 targetsdkversion 不大于 28,因为从 Android 10 开始就必须使用一种新的文件共享方法。如果您正在使用 Android 10 或更高版本,请考虑使用 MediaStore API 保存照片。例如:
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.DISPLAY_NAME, "photo.jpg");
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
ContentResolver resolver = getContentResolver();
uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
OutputStream os = resolver.openOutputStream(uri);
此外,还要确保在 AndroidManifest.xml 文件中声明文件提供者。请将以下代码添加到应用程序的清单文件中:
最后,在 res/xml 文件夹中创建 "provider_paths.xml" 文件,并定义您希望共享的路径。例如:
请注意,此示例将照片保存到名称为 "camera_photos" 的文件夹下的 "Pictures" 目录中。根据您的需求,可以更改此名称和路径。
以上是解决 Android 存储照片无法正常工作的示例代码。
上一篇:Android存储RSA公钥