的內容提供商消費的客戶端,我可以做這樣的事情,才能得到正確的InputStream中讀取圖片:從內容提供者返回內存映射的InputStream?
InputStream is = getContentResolver().openInputStream(pictureUri);
這是一個很好的API,並會在服務器端,實際內容提供商導致調用:
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
// Open a proper ParcelFileDescriptor, most likely using openFileHelper(uri, mode)
}
但是,如果映射到URI的圖片是不是要在文件系統中發現的,但作爲一個存儲資源,或在飛行中產生的。
我可以創建內存映射File
或InputStream
或其他任何東西,以便我不需要將臨時文件保存到磁盤,只是爲了能夠將其返回給我的內容提供者使用者?
也就是說可能工作的解決方案,但不是我想這樣做。我真的希望能夠持續使用'ContentResolver#openInputStream()'方法讀取各種遠程數據。無論服務器如何創建/獲取數據。這是一個不向客戶端公開服務器實現的問題。 – PeyloW 2009-10-12 09:44:25
@PeyloW你找到了解決辦法嗎?我也在尋找解決方案。 – Sunny 2012-01-18 22:00:34
@孫尼這不是一個黑客。所以我最終保存了臨時文件併發送了文件描述符。 – PeyloW 2012-01-19 08:21:43