У меня возник вопрос о загрузке pdf-файла и его открытии с помощью приложения для чтения PDF, установленного на телефоне. Я новичок в android и работаю, но встал на эту часть.Android открыть загруженный файл
Так что у меня есть сейчас: У меня есть активность, которая на данный момент начинает загружать PDF-файл и пытается открыть с намерением. Пока все статично, поэтому у меня есть заданный url.
private void DownloadFile(){
DownloadManager downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
Uri Download_Uri = Uri.parse("http://awebiste.adomain/afile.pdf");
DownloadManager.Request request = new DownloadManager.Request(Download_Uri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
request.setAllowedOverRoaming(false);
request.setTitle("My Data Download");
request.setDescription("Android Data download using DownloadManager.");
request.setDestinationInExternalFilesDir(this,Environment.DIRECTORY_DOWNLOADS,"test.pdf");
Long downloadReference = downloadManager.enqueue(request);
if (downloadReference != null){
Intent target = new Intent(Intent.ACTION_VIEW);
target.setDataAndType(Uri.parse(getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + "/test.pdf"), "application/pdf");
target.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Log.v("OPEN_FILE_PATH", getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + "/test.pdf");
startActivity(target);
} else {
//TODO something went wrong error
}
}
Теперь файл загружается и сохраняется в папке приложения под /storage.sdcard0/Android/data/<application>/files/download
и из браузера документов файл может быть opent. Но когда я использую намерение на кнопке моего кода, я получаю тост, что файл не может быть открыт. После некоторого поиска в google я думаю, что это проблема разрешения, потому что эти файлы являются приватными для приложения. Итак, как я могу сделать эти файлы общедоступными?
вчера я ответил на аналогичный вопрос, который может помочь (хотя я озадачен, как вы можете прочитать файл, используя браузер документов, поскольку он должен быть закрыт для вашего приложения): http://stackoverflow.com/questions/21304489/how-to-open-private-files-saved-to-the-internal-storage-using -intent-action-view/21305564 # 21305564 – NigelK
К сожалению, у меня такая же проблема после внедрения вашего решения. – Msmit1993
Refer My Answer in other thread - здесь http://stackoverflow.com/questions/7239996/android-downloadmanager-api-opening-file-after-download/40925445#40925445 – Vasanth