как получить ParcelFileDescriptor для содержимого файла? - PullRequest
8 голосов
/ 13 декабря 2011

Я использую eclipse-indigo и android 2.3.3_r1 и загружаю строку с сервера в сети. Это содержимое файла docx.

Могу ли я получить от него ParcelFileDescritor?Я думаю, что MemoryFile может помочь мне, потому что я видел getParcelFileDescriptor() метод для него здесь и здесь , но когда я пишу свой код в Eclipse, я не могу найти методgetParcelFileDescriptor() в классе android.os.MemoryFile.

Наконец, это мой вопрос: возможно ли это без использования socket () ?

Ответы [ 2 ]

7 голосов
/ 16 июня 2015
@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 голос
/ 24 ноября 2012

getParcelFileDescriptor() является закрытым методом пакета, поэтому я не смог найти его в своем классе (то есть в другом пакете). Я попытался получить к нему доступ с помощью отражения, но, наконец, я понимаю, что он возвращает подходящий ParcelFileDescritor, если и только Если мы создаем наш MemoryFile как ссылку на существующий файл памяти, и в этом случае мы хотим File descriptor из этого существующего файла памяти. Так что этот метод не может помочь нам. Также кажется, что в более поздних версиях Android этот метод полностью игнорируется и исключается из класса.

...