Я разработчик iOS, но мне также было поручено также обновлять приложения для Android нашей компании (так что у меня мало опыта работы с Android). В настоящее время приложение android загружает PDF-файлы из raw, а затем отображает их в другое приложение для чтения PDF, также установленное на андроиде ... однако я хотел бы вместо этого получить pdf-файлы из Интернета.Как открыть pdf-файл из определенного URL-адреса в android
это код, используемый для отображения pdf-файла, хранящегося локально.
if (mExternalStorageAvailable==true && mExternalStorageWriteable==true)
{
// Create a path where we will place our private file on external
// storage.
Context context1 = getApplicationContext();
File file = new File(context1.getExternalFilesDir(null).toString() + "/pdf.pdf");
URL url = new URL("https://myurl/pdf.pdf");
URLConnection urlConnection = url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
OutputStream os = new FileOutputStream(file);
try {
byte[] data = new byte[in.available()];
in.read(data);
os.write(data);
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
} catch (IOException e) {
// Unable to create file, likely because external storage is
// not currently mounted.
Log.w("ExternalStorage", "Error writing " + file, e);
Context context2 = getApplicationContext();
CharSequence text1 = "PDF File NOT Saved";
int duration1 = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context2, text1, duration1);
toast.show();
} finally {
in.close();
os.close();
}
}
В конце концов PDF придет с веб-сайта и веб-сайт будет требовать запрос HTML сообщению посланный к нему до того, как PDF можно скачать. Я думаю, что смогу выяснить HTML-сообщение, но пока я могу загрузить PDF из Интернета и показать его. Я попытался изменить URI, чтобы указать на местоположение, но это не сработало, или я неправильно структурировал его.
Также имейте в виду, по соображениям безопасности, я не хочу, чтобы отобразить это с помощью просмотра Google и WebView
Я отредактировал свое оригинальное сообщение, чтобы отразить, как я попытался включить это, однако это приводит к сбою приложения. Я сделал что-то неправильно? – Ben
Журнал ошибок будет полезен, чтобы помочь вам отладить это. :-) – francoisr
Я закончил тем, что смог использовать небольшую модификацию ответа по этой проблеме. Http://stackoverflow.com/questions/9759205/download-a-pdf-file-and-save-it-to-sdcard- и-то чтения-это-из-там – Ben