如何获取ParcelFileDescriptor的文件内容?

has*_*ian 8 android file-descriptor

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

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

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

shr*_*ari 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;
    }
Run Code Online (Sandbox Code Playgroud)


has*_*ian 1

getParcelFileDescriptor()是一个包私有方法,所以我在我的类中找不到它(即在另一个包中)。我尝试通过反射访问它,但最后我明白它返回一个合适的 ParcelFileDescriptor,当且仅当我们创建我们的 MemoryFile作为对现有内存文件的引用,在这种情况下,我们想要File descriptor从该现有内存文件中获取。所以这个方法对我们没有帮助。而且似乎在以后的 Android 版本中,这个方法被完全忽略并从类中删除。