- 添加运行时权限处理
因为查看相册需要访问SD卡,所以这里需要对WRITE_EXTERNAL_STORAGE这个危险权限进行运行时权限处理。
- 使用隐式Intent打开相册
Intent intent = new Intent("android.intent.action.GET_CONTENT");
intent.setType("image/*");
startActivityForResult(intent, CHOOSE_PHOTO);
- 在onActivityResult方法中处理返回的数据
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (Build.VERSION.SDK_INT >= 19) {
//Android 4.4以上的版本选取相册的图片返回的Uri为封装的Uri,需要进行解析
handleImageOnkitkat(data);
} else {
//Android 4.4以下的版本选取相册的图片返回的Uri为图片真实的Uri,可以直接进行处理
handleImageBeforeKitKat(data);
}