在Android中使用http / https URI作为内容URI

时间:2011-12-22 09:10:57

标签: android uri android-contentprovider

我遇到了以下问题。

我的应用程序向用户显示图像库以选择文件,然后打开输入流以读取该文件并通过某种介质发送。这是完成工作的代码:

ContentResolver resolver = getContentResolver();            
fileStream = resolver.openInputStream(fileUri);

当所选图像驻留在设备存储上时(如从相机拍摄的照片等),一切都很有效,我得到了一个内容://方案URI。问题是当我从Picasa相册中选择一张图片时,该相册显然会根据需要从Picasa服务器加载图片。在这种情况下,我得到一个https://方案URI,openInputStream调用失败,FileNotFoundException为“No content provider”。

我的问题是在这种情况下获取输入流的最佳方法是什么?我正在考虑打开一个URL连接,但我想知道这是否是最佳选择?我不确定Android中的内容提供商是否可以为此提供更好的解决方案。

1 个答案:

答案 0 :(得分:1)

content:// urls标识本地设备上的资源。

https://标识远程服务器上的内容(picasa网络服务器)。我假设你看到了这些,因为你有一个HTC设备,其中picasa被意义上整合到画廊中。

当您获得https://地址时,您需要直接从服务器获取数据 见google-api-java-client.