android studio AVD 不显示 MediaStore.ACTION_PICK_IMAGES

问题描述 投票:0回答:1

这是我的代码

public static void ChooseVideo(ActivityResultLauncher<Intent> resultLauncher) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && SdkExtensions.getExtensionVersion(Build.VERSION_CODES.R) >= 2) {
            Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
            intent.putExtra(Intent.EXTRA_MIME_TYPES, new String[]{"video/*"});
            resultLauncher.launch(intent);
        }else {
            Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType("video/*");
            resultLauncher.launch(intent);
        }
        Log.i("FilesUtil", "loading video");
    }

我的问题就在这部分

Intent intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
intent.putExtra(Intent.EXTRA_MIME_TYPES, new String[]{"video/*"});
resultLauncher.launch(intent);

此部分应在我的应用程序中触发 Android 13 及更高版本上的媒体选择器,如下图所示: Android 13 图像

它可以在 Android 13 AVD 和运行 Android 13 及更高版本的真实设备上正常运行。

问题是它在 Android Studio AVD 中的 Android 14 和 15 上不起作用。它不显示任何可供选择的媒体: Android 14 和 15 AVD 图像

它在真实设备中工作正常,但在 AVD 中无法工作

我尝试过这些版本 AVD版本图像

java android android-intent android-virtual-device mediastore
1个回答
0
投票

尝试这个

PickVisualMediaRequest
ActivityResultLauncher

private ActivityResultLauncher<PickVisualMediaRequest> pickMultipleMedia;

private void ChooseVideo() {
    pickMultipleMedia.launch(new PickVisualMediaRequest.Builder()
            .setMediaType(ActivityResultContracts.PickVisualMedia.VideoOnly.INSTANCE)
            .build());
}
pickMultipleMedia = registerForActivityResult(
                new ActivityResultContracts.PickMultipleVisualMedia(), new 
    ActivityResultCallback<List<Uri>>(){
    @Override
    public void onActivityResult(List<Uri> uris) {
        if (!uris.isEmpty()) {
            Log.d(TAG, "Number of items selected: " + uris.size());
        } else {
            Log.d(TAG, "No media selected");
        }
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.