2011-12-13 171 views
6

我使用eclipse-indigo和android 2.3.3_r1,我從網絡服務器下載一個字符串。它是docx文件的內容。如何獲取文件內容的ParcelFileDescriptor?

我可以收到ParcelFileDescritor嗎?我想那MemoryFile可以幫助我,因爲我看到getParcelFileDescriptor()方法它herehere,但是當我在eclipse中寫我的代碼時,我找不到方法getParcelFileDescriptor()在類 android.os.MemoryFile

最後這是我的問題:有沒有可能不使用socket()

回答

0

getParcelFileDescriptor()getParcelFileDescriptor()是一個包私有方法,所以我無法在我的類(即在另一個包)中找到它。我嘗試通過反射來訪問它,但最後我明白它返回一個合適的ParcelFileDescritor,當且僅當,我們創建了我們的MemoryFile作爲對現有內存文件的引用,在這種情況下,我們希望File descriptor來自現有的內存文件。因此,此方法不能幫助我們。另外,在Android的更高版本中,此方法似乎完全被忽略,從課堂中刪除。

6
@Override 
public ParcelFileDescriptor openFile(Uri uri){ 
     File f=new File(getContext().getFilesDir(),uri.getLastPathSegment()); 
     ParcelFileDescriptor pfd; 
     try { 
     pfd=ParcelFileDescriptor.open(f,ParcelFileDescriptor.MODE_READ_ONLY); 
     } 
    catch ( FileNotFoundException e) { 
     e.printStackTrace(); 
     return null; 
     } 
     return pfd; 
    }