въз основа на кодови фрагменти от stackoverflow с "intents":
F_Pdf_File:= GetHomePath + PathDelim + "_files" + PathDelim + "lic.pdf";
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setDataAndType(StrToJURI( F_Pdf_File), StringToJString("application/pdf"));
SharedActivity.startActivity(Intent);
PDF файлът не може да бъде отворен, а не в приложението, а в SolidExplorer. В други мостри прочетох за отваряне на файлове в "sdcard / download".
Но моите файлове трябва да бъдат изтеглени (до:някои от които директно се доставят в StartUp) и да са част от приложението (например лицензионни споразумения) и не трябва да се поставят в глобални директории като изтегляне или медии:
също е важно, те няма да бъдат изтрити при рестартиране.
- добра идея ли е да изтеглите на HomePath изобщо? файловете могат да бъдат големи - е "getFilesDir ()" най-доброто място? Решението трябва да работи на различни платформи, а директорията трябва да бъде изтрита при премахването на приложението ...
- трябва първо да копирате файла в / sdcard (или е "getCacheDir ()" на правилното място), преди да го отворите? (ефективност и пространство за мембрани)
Съжалявам, след много глупости станах все по-объркан относно местоположенията и къде да поставя моите файлове ...
Отговори:
1 за отговор № 1Зависи от това как изтегляте файловете.
Файловете не се изтриват при рестартиране, а файловете на приложението ви, в зависимост от това къде се намират, ще бъдат изтрити, ако някой деинсталира приложението ви.
В основата си имате две местоположения: вътрешно хранилище и външно хранилище. Ако имате външно хранилище във вградената памет на устройството, и устройството има и слот за SD карта, след което външна SD карта може да съдържа медийни файлове, но те са много различни от приложението ви.
getFileDir () описва файловете / поддиректорията на вътрешното хранилище; getExternalFilesDir () е еднакъв за външното хранилище. Environment.getExternalStorageDirectory () връща външното хранилище "root".
Изпълнението не е толкова проблем, колкото пространството. Вътрешното хранилище е по-ограничено.
Не съм сигурен какво се опитвате да направите във вашиякод. За да видите PDF на дадено устройство, трябва да имате приложение, което да вижда PDF файла, и трябва да изтеглите PDF файла откъдето и да е. Погледнете в DownloadManager за изтегляне от мрежата: изтегля се на външно хранилище, но можете да копирате файла във вътрешното хранилище и да изтриете външното копие, когато приключите.
Не мога да ви помогна с преглеждането на PDF. Няколко приложения го правят, но не са вградени в Android.