【发布时间】:2022-01-05 23:11:38
【问题描述】:
我想从手机图库中挑选一张图片作为用户的个人资料图片上传到应用中。我想获取它的 URI,以便将其存储在用户数据库中。
activityResultLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(), result -> {
if (result.getResultCode() == RESULT_OK && result.getData()!= null) {
Bundle data = result.getData().getExtras();
Uri myUri = (Uri) data.get("data");
profilePic.setImageURI(myUri);
}
});
uploadPicture.setOnClickListener(view -> {
Intent imagePickerIntent = new Intent(Intent.ACTION_PICK,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
imagePickerIntent.setType("image/*");
activityResultLauncher.launch(imagePickerIntent);
});
现在我可以在此处输入代码并打开图库并浏览图片,但是当我选择一个并尝试从图库返回我的应用程序时应用程序崩溃。谁能告诉我如何修复我的代码?谢谢
【问题讨论】:
-
你不应该将
ACTION_PICK用于图像——这就是GetContent合约的用途。即使您使用的是ACTION_PICK,是什么让您相信它会为您提供额外的回报?根据ACTION_PICK's documentation,它只返回一个Uri,没有别的。
标签: java android file-upload uri profile-picture