Android媒体选择器未仅展示用户授权媒体,显示全部设备媒体求助
问题描述
我想要实现一个仅展示用户授权媒体的媒体选择器:先弹出权限对话框,让用户选择授权应用使用的图片/视频;之后弹出选择器,让用户从该授权子集中挑选媒体项来执行后续操作。但目前遇到的问题是,应用并未仅展示用户授权的媒体,而是显示了设备上的全部媒体。
权限申请代码
private void requestPermissionsHelper() { List<String> permissions = new ArrayList<>(); permissions.add(Manifest.permission.READ_MEDIA_IMAGES); permissions.add(Manifest.permission.READ_MEDIA_VIDEO); permissions.add(Manifest.permission.RECORD_AUDIO); requestPermissions(permissions.toArray(new String[permissions.size()]), PERMISSION_REQUEST_CODE); }
权限回调方法
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == PERMISSION_REQUEST_CODE) { boolean valid = true; for (int i = 0; i < grantResults.length; i++) { int grantResult = grantResults[i]; valid = valid && grantResult == PackageManager.PERMISSION_GRANTED; } if (!valid) { DialogHelper.showError(this, "You need to grant acces to media files in order to use this function."); } } }
媒体选择器实现代码(问题代码)
Intent mediaPickerIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT); mediaPickerIntent.setType("*/*"); mediaPickerIntent.addCategory(Intent.CATEGORY_OPENABLE); mediaPickerIntent.putExtra(Intent.EXTRA_MIME_TYPES, new String[]{"image/*", "video/*"}); startActivityForResult(mediaPickerIntent, BROWSE_DEVICE_GALLERY_RC);
内容的提问来源于stack exchange,提问作者Adam Varhegyi
相关产品推荐
相关产品推荐

