Я пытаюсь открыть некоторый pdf файл из своего приложения для Android. Я использую намерение для этого:
Intent intent = new Intent();
intent.setDataAndType(Uri.parse(url), "application/pdf");
startActivity(intent);
Этот код хорошо работает для некоторого pdf, но он терпит неудачу, когда я пытаюсь открыть другие.
Это сообщение, которое Android показывает мне:
Проблема с файлом.
Я должен упомянуть, что pdf файл, который открывается без проблем, создается с помощью одного шаблона Crystal Report, а сбойные pdf файлы создаются с помощью другого.
В противоположность этому, если я открою URL-адрес pdf файлов, которые терпят неудачу в моем браузере (на моем компьютере), он не дает мне никакой ошибки, открывающей их, поэтому я предполагаю, что, возможно, есть некоторые ограничения на Android, которые отличаются от некоторые pdf в другой (в шаблоне Crystal Report), но я не вижу его.
Какие существуют ограничения при открытии pdf файла на Android? (Размер, некоторые параметры отчета Crystal Report, которые не разрешены и т.д.)
Я отбросил, что это может быть ограничение по размеру, потому что файлы PDF, которые дают проблемы, меньше, чем файлы, которые не дают никакой ошибки.
Доказательства, которые я сделал:
- Открытие неверных PDF файлов в браузере ~~ > OK
- Загрузка неправильного PDF файла на мобильный телефон и его открытие ~~ > OK
- Открытие неправильных PDF файлов в APP ~~ > Ошибка
- Открытие хорошего PDF на APP компании, что сбой PDF файлов ~~ > OK
ИЗМЕНИТЬ
Я заметил, что я использовал протокол http://
, но PDF файл находится в протоколе https://
, поэтому я изменил его на метод Uri.parse
.
Когда я сделал это изменение, приложение разбилось, и в журнале была показана ошибка:
android.content.ActivityNotFoundException: активность не обнаружена для обработки намерения
Кроме того, я заметил, что PDF файлы, которые не дают мне никакой ошибки, находятся в URL-адресе с протоколом http://
вместо https://
, поэтому я думаю, что проблема может быть в протоколе https://
.
Я могу только открыть запрос http://
на намерение?