如何获取ParcelFileDescriptor的文件内容?

时间:2011-12-13 10:26:35

标签: android file-descriptor

我使用eclipse-indigo和android 2.3.3_r1,我从网络中的服务器下载一个字符串。它是docx文件的内容。

我可以从中收到ParcelFileDescritor吗?我想MemoryFile可以帮助我,因为我看到了getParcelFileDescriptor()方法herehere,但是当我在eclipse中编写代码时,我找不到方法课堂上getParcelFileDescriptor() android.os.MemoryFile

最后这是我的问题:是否可以不使用 socket()

2 个答案:

答案 0 :(得分:7)

@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;
    }

答案 1 :(得分:1)

getParcelFileDescriptor()是一个包私有方法,所以我无法在我的类中找到它(在另一个包中)。我试图通过反射访问它但最后我明白它会返回一个合适的ParcelFileDescritor,如果并且只有当我们创建MemoryFile作为对现有内存文件的引用时,在这种情况下我们希望来自现有内存文件的File descriptor。所以这种方法无法帮助我们。在Android的更高版本中似乎也是如此,这个方法完全被忽略并从课堂上删除。