在Android 12中,由于新的权限限制,可能会导致无法上传照片并出现上述错误。解决此问题的方法是使用新的媒体保存API来创建文件并获取文件URI。
以下是一个示例代码片段,可以在Android 12中解决此问题:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, "example.jpg");
contentValues.put(MediaStore.Images.Media.MIME_TYPE, "image/jpg");
contentValues.put(MediaStore.Images.Media.RELATIVE_PATH, Environment.DIRECTORY_PICTURES);
ContentResolver resolver = getContentResolver();
Uri uri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
try {
OutputStream outputStream = resolver.openOutputStream(uri);
// 这里可以使用outputStream进行文件的写操作
} catch (IOException e) {
e.printStackTrace();
}
} else {
// 在Android 11及以下版本中使用旧方法处理
// ...
}
通过使用这种新的媒体保存API方法,应该可以在Android 12中解决无法上传照片的问题。