从 ACTIVITY_GET_CONTENT (Android) 获取 base64 URI 结果

get base64 URI result from ACTIVITY_GET_CONTENT (Android)

在我正在开发的 android 应用程序中,我希望用户从他们的图库中选择一张图片,为此,我使用以下代码:

private void takePictureFromGallery(int pick) {
    startActivityForResult(
            Intent.createChooser(new Intent(Intent.ACTION_GET_CONTENT).setType("image/*"), "Choose an image"), pick);
}

我正在使用 onActivityResult 来检测何时选择了图像。 因为我想要图片的URI,所以调用

Uri selectedImageUri = data.getData();

但是只有 returns "/document/image:28" 作为输出。

代替接收表示图像的 Base64 类型 URI(以 "data:image/gif;base64,{base64 encoded image}" 开头的 URI)的过程是什么?

提前致谢。

Uri selectedImageUri = data.getData();

那句话没用。这类似于认为 /questions/34245601/get-base64-uri-result-from-activity-get-content-android(此网页 URL 的路径部分)在某种程度上是孤立的。

What would be the process of instead receiving a Base64-type URI (one that begins with "data:image/gif;base64,{base64 encoded image}") that represents the image?

第 1 步:在 Uri 上使用 ContentResolveropenInputStream()

第 2 步:读入字节并将它们转换为 base64,将它们附加到具有所需前缀的 URL 的末尾。

第 3 步:为 OutOfMemoryErrors 做好准备,因为您的字符串可能没有足够的堆 space,具体取决于堆的状态和用户使用的图像大小选择。