在Android 11及以上版本中,由于权限管理的变化,如果不使用新的API,可能无法使用旧版的意图(Intent)选取图库图片。需要使用新的方式进行图库图片选取,例如使用MediaStore API,示例代码如下:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
try {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
String[] mimeTypes = {"image/jpeg", "image/png"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
startActivityForResult(intent, REQUEST_CODE_PICK_IMAGE);
} catch (ActivityNotFoundException e) {
// Handle exception
}
} else {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, REQUEST_CODE_PICK_IMAGE);
}
其中,用于选取图片的Intent.ACTION_PICK在Android 11及以上版本中可能会返回null,因此需要使用新的API进行图片选取。通过MediaStore API可以实现在Android 11及以上版本中对图库图片的选取。