2011-12-13 92 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; 
    }