1

我实现了一个文件 ContentProvider 以通过 http url 访问 wifi 网络上的文件服务器。

我要做的是启动具有特定意图和 uri 的 Android Gallery 应用程序,以显示文件服务器上特定目录中的图像文件。

如果我使用单个 uri 启动 Gallery 应用程序以通过以下代码显示一个图像,我就能成功:

Intent lance = new Intent();
lance.setAction(Intent.ACTION_VIEW);
String typedata = "image/*";
lance.setType(typedata);
String phuri = "content://" + URI_AUTORITE
                     + "/" + URI_CONTENU_FICHIERS
                     + directory + filename;
Uri uri = Uri.parse(phuri);
lance.setDataAndType(uri, "image/*");
startActivity(lance);

但我试图更进一步来实现包含图像的目录的显示。我尝试通过以下代码使用 ClipData 对象显示多个图像:

Intent lance = new Intent();
lance.setAction(Intent.ACTION_VIEW);
String typedata = "image/*";
lance.setType(typedata);
String phuri = "content://" + URI_AUTORITE
                     + "/" + URI_CONTENU_FICHIERS
                     + directory + filename;
Uri uri = Uri.parse(phuri);
ClipData ensemble = ClipData.newRawUri("Photos", uri);
lance.setClipData(ensemble);
startActivity(lance);

它不起作用:Gallery 应用程序已启动并显示专辑列表,并且不调用我的 File ContentProvider。

我错过了什么,还是画廊应用程序开发人员有问题?

4

1 回答 1

0

您应该覆盖内容提供者的 getType() 方法以返回 mime 类型的图像,如下所示

@Override
public String getType(Uri uri) {
    return "image/*";
}
于 2012-11-21T15:01:19.270 回答