/ / намерение setdataandtype sdcard gethomepath - андроид, андроид намерение, пътека, firemonkey

намерение setdataandtype sdcard gethomepath - андроид, андроид-намерение, пътека, firemonkey

въз основа на кодови фрагменти от 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) и да са част от приложението (например лицензионни споразумения) и не трябва да се поставят в глобални директории като изтегляне или медии:

също е важно, те няма да бъдат изтрити при рестартиране.

  1. добра идея ли е да изтеглите на HomePath изобщо? файловете могат да бъдат големи - е "getFilesDir ()" най-доброто място? Решението трябва да работи на различни платформи, а директорията трябва да бъде изтрита при премахването на приложението ...
  2. трябва първо да копирате файла в / sdcard (или е "getCacheDir ()" на правилното място), преди да го отворите? (ефективност и пространство за мембрани)

Съжалявам, след много глупости станах все по-объркан относно местоположенията и къде да поставя моите файлове ...

Отговори:

1 за отговор № 1

Зависи от това как изтегляте файловете.

Файловете не се изтриват при рестартиране, а файловете на приложението ви, в зависимост от това къде се намират, ще бъдат изтрити, ако някой деинсталира приложението ви.

В основата си имате две местоположения: вътрешно хранилище и външно хранилище. Ако имате външно хранилище във вградената памет на устройството, и устройството има и слот за SD карта, след което външна SD карта може да съдържа медийни файлове, но те са много различни от приложението ви.

getFileDir () описва файловете / поддиректорията на вътрешното хранилище; getExternalFilesDir () е еднакъв за външното хранилище. Environment.getExternalStorageDirectory () връща външното хранилище "root".

Изпълнението не е толкова проблем, колкото пространството. Вътрешното хранилище е по-ограничено.

Не съм сигурен какво се опитвате да направите във вашиякод. За да видите PDF на дадено устройство, трябва да имате приложение, което да вижда PDF файла, и трябва да изтеглите PDF файла откъдето и да е. Погледнете в DownloadManager за изтегляне от мрежата: изтегля се на външно хранилище, но можете да копирате файла във вътрешното хранилище и да изтриете външното копие, когато приключите.

Не мога да ви помогна с преглеждането на PDF. Няколко приложения го правят, но не са вградени в Android.