2016-11-26 2 views
-2
File file = new File(s); 
    Intent intent = new Intent(Intent.ACTION_VIEW); 
    intent.setDataAndType(Uri.fromFile(file), "application/pdf"); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 
    try { 
     startActivity(intent); 
    } 
    catch(Exception e) 
    { 
     file.delete(); 
     downloadFile(file); 
    } 

Я пытаюсь открыть PDF с помощью внешнего приложения на Android, если файл полностью загружен, он откроется и покажет файл PDF. Если файл пуст или поврежден, я хочу удалить файл и перезагрузить его.Как справиться с невозможностью открыть файл на Android с помощью внешнего приложения

Но я не в состоянии справиться с

Исключение «Документ не может быть открыт».

+0

Где именно вы видите это исключение? Показать трассировку стека. – greenapps

+0

'(s)'. Вы считаете, что значение 's' является нерелевантным? – greenapps

+0

Где находится адрес в pdf-формате? Потому что это зависит от действий сторонних приложений для просмотра. –

ответ

0

Но я не в состоянии справиться с Исключение «Документ не может быть открыт».

Это, скорее всего, потому, что он находится за пределами фрагмента кода, который вы указали, с downloadFile(), являющимся возможным кодом. Если это так, у вас должно быть try/catch (или хотя бы около downloadFile() вызов метода). Будучи в catch(), вы не сможете автоматически отслеживать любые последующие исключения.

0

Это может случиться, что ваш файл PDF не хорошо сформирован, поэтому он не может открыть или нет приложения, которое поддерживает открытие pdf.

Давайте проверим этот файл для проверки наличия или отсутствия файла, и если файл существует, проверьте все приложения, у которых есть фильтр намерений ACTION_VIEW.

try { 
      File file = new File(s); 
      if (file.exists()) { 
       Intent intent = new Intent(Intent.ACTION_VIEW, Uri.fromFile(file)); 
       startActivity(intent); 
      } else { 
       downloadFile(file); 
      } 
     } catch (Exception e) { 
      file.delete(); 
      downloadFile(file); 
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^