[英]how to intent specific gallery folder by using MediaStore
I tried this code.我试过这个代码。
public static void openGallery(Context context) {
String bucketId = "";
final String[] projection = new String[] {"DISTINCT " + MediaStore.Images.Media.BUCKET_DISPLAY_NAME + ", " + MediaStore.Images.Media.BUCKET_ID};
final Cursor cur = context.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
while (cur != null && cur.moveToNext()) {
final String bucketName = cur.getString((cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME)));
if (bucketName.equals("Your_dir_name")) {
bucketId = cur.getString((cur.getColumnIndex(MediaStore.Images.ImageColumns.BUCKET_ID)));
break;
}
}
Uri mediaUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
if (bucketId.length() > 0) {
mediaUri = mediaUri.buildUpon()
.authority("media")
.appendQueryParameter("bucketId", bucketId)
.build();
}
if(cur != null){
cur.close();
}
Intent intent = new Intent(Intent.ACTION_VIEW, mediaUri);
context.startActivity(intent);
}
But I failed to open the gallery specific folder, but the gallery home screen appears with 'file not supported' Toast.但是我无法打开特定于画廊的文件夹,但画廊主屏幕显示“文件不受支持”Toast。 Is there any way I can solve this problem?
有什么办法可以解决这个问题吗?
You can't set initial path to specific folder when working with files stored in MediaStore
.处理存储在
MediaStore
文件时,您无法设置特定文件夹的初始路径。
However, you can use DocumentsContract.EXTRA_INITIAL_URI
when working with DocumentFile
, so you can set initial path when user wants to select files from Storage Access Framework (SAF):但是,您可以在使用
DocumentsContract.EXTRA_INITIAL_URI
时使用DocumentFile
,因此当用户想要从存储访问框架(SAF)中选择文件时,您可以设置初始路径:
Uri initialUri = DocumentFileCompat.createDocumentUri(DocumentFileCompat.PRIMARY, "DCIM")
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
.putExtra(DocumentsContract.EXTRA_INITIAL_URI, initialUri)
DocumentFileCompat.createDocumentUri()
helps you constructing the initial URI. DocumentFileCompat.createDocumentUri()
帮助您构建初始 URI。 You can get DocumentFileCompat
from SimpleStorage .您可以从SimpleStorage获取
DocumentFileCompat
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.