Android 从不在库中的目录打开图像

Android 从不在库中的目录打开图像,android,Android,我想打开我创建但不在库中的文件夹中的所有图像。到目前为止,我已经进行了搜索,并在一定程度上实现了它。唯一的问题是,它只显示图像库,显示要选择的文件夹。它似乎忽略了路径,并默认为库。我在做什么有问题吗?请温柔一点,我通常会搜索更多,但可能还不够?下面是我正在使用的代码片段 另外,我在这里尝试了解决方案:,但它只显示一个图像,而不是目录中的所有图像。也许我需要回到这一个,并改变它的工作 private void setIntentToSpecificFolder() { String fol

我想打开我创建但不在库中的文件夹中的所有图像。到目前为止,我已经进行了搜索,并在一定程度上实现了它。唯一的问题是,它只显示图像库,显示要选择的文件夹。它似乎忽略了路径,并默认为库。我在做什么有问题吗?请温柔一点,我通常会搜索更多,但可能还不够?下面是我正在使用的代码片段

另外,我在这里尝试了解决方案:,但它只显示一个图像,而不是目录中的所有图像。也许我需要回到这一个,并改变它的工作

private void setIntentToSpecificFolder() {
    String folderPath = Environment.getExternalStorageDirectory().toString() + "/com.qk.livewallpapertest/";
    //int folderBucketId = folderPath.toLowerCase().hashCode();
    //Uri targetUri = Media.EXTERNAL_CONTENT_URI.buildUpon().appendQueryParameter("bucketId", String.valueOf(folderBucketId)).build();
    Uri targetUri = Uri.parse(folderPath);

    Log.v(TAG,"targetUri: " + getRealPathFromURI(targetUri) + "folderPath: " + folderPath);

    Intent intent = new Intent(Intent.ACTION_PICK);
    intent.setDataAndType(targetUri, "vnd.android.cursor.dir/image");
    startActivityForResult(intent,SELECT_PHOTO);
}

每当您使用像
action\u PICK
这样的操作时,您都会隐式地将控制权交给另一个应用程序,就像指向第三方网站的链接将控制权交给另一个网站一样

在这种情况下,设备不需要从特定目录中执行任何操作。一台设备可能有零个、一个或N个能够做到这一点的应用程序。这些应用程序是什么,它们做什么,取决于它们各自的作者


因此,如果应用程序的功能取决于用户从特定目录中选择图像的能力,那么您需要自己实现。如果这是一个不错的选择,但不是必需的,那么您可以坚持使用
操作_PICK
,但建议用户安装您确定的某个文件浏览器应用程序,以提供您想要的结果。

这里是一个简化的应用程序

private  MediaScannerConnection conn;
private void notifySystemWithImage(final File imageFile) {

        conn = new MediaScannerConnection(this, new MediaScannerConnectionClient() {

        @Override
        public void onScanCompleted(String path, Uri uri) {

            try {
                if (uri != null) {
                    Intent intent = new Intent(Intent.ACTION_VIEW);
                    intent.setDataAndType(uri, "image/*");
                    startActivity(intent);
                }
            } finally {
                conn.disconnect();
                conn = null;
            }
        }

        @Override
        public void onMediaScannerConnected() {
            conn.scanFile(imageFile.getAbsolutePath(), "*/*"); 

        }
    });

    conn.connect();
}

使用startActivityForResult(意图,选择照片);,你是如何得到挑选的图像的?嗯,挑选照片不是问题。我已经有一个过程,用户选择一个图像,我调整大小并将照片存储在不同的文件夹中。我试图做的过程是检索文件夹中的照片,让他们选择任何照片删除,编辑…等等。出于某种原因,当意图开始时,它默认为画廊。如果您不想让它拾取,为什么要将action设置为action\u pick?我确实希望他们拾取。我说让用户选择一张图片,这样他们就可以编辑、删除以及我想提供给他们的任何东西。谢谢你的解释。这实际上很有道理。我想这是公认的答案,因为我不明白什么是真正的行动。在某种程度上,你可以说我没有做足够的搜索。