/ / zámer setdataandtype sdcard gethomepath - android, android-zámer, cesta, firemonkey

zámer setdataandtype sdcard gethomepath - android, android-zámer, cesta, firemonkey

založené na fragmentoch kódu z stackoverflow s "zámermi":

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);

súbor pdf sa nedá otvoriť, nie v aplikácii a nie v programe SolidExplorer. V iných vzorkách som čítal o otváraní súborov v "sdcard / download".

Moje súbory by sa však mali prevziať (okrem:niektoré z nich sú priamo dodané do StartUp) a sú súčasťou aplikácie (napr. licenčné zmluvy) a nesmú byť umiestnené v globálnych adresároch, ako sú napríklad súbory na prevzatie alebo médiá:

tiež dôležité, nesmú byť pri reštarte vymazané.

  1. je to dobrý nápad stiahnuť do HomePath vôbec? súbory môžu byť veľké - je "getFilesDir ()" najlepšie miesto? Riešenie musí fungovať naprieč platformami a adresár by mal byť odstránený pri odstraňovaní aplikácie ...
  2. Musím najprv skopírovať súbor do / sdcard (alebo je "getCacheDir ()" správne miesto) pred otvorením? (výkon a pamäťový priestor)

Prepáčte, po mnohých googlingoch som sa stal viac a viac zmätený o miestach a kam umiestniť svoje súbory ...

odpovede:

1 pre odpoveď č. 1

Záleží na tom, ako si stiahnete súbory.

Súbory „nie sú odstránené pri reštarte, nikdy. Súbory aplikácie, v závislosti od toho, kde sa nachádzajú, budú odstránené, ak niekto vašu aplikáciu odinštaluje.

V podstate máte dve lokality: internú pamäť a externé úložisko. Ak máte externé úložisko v internej pamäti zariadenia, a Zariadenie má tiež slot pre kartu SD, potom externá karta SD môže obsahovať mediálne súbory, ale tieto sú veľmi oddelené od aplikácie.

getFilesDir () popisuje interný ukladací súbor / podadresár; getExternalFilesDir () je rovnaký pre externé úložisko Environment.getExternalStorageDirectory () vracia externý úložný "root".

Výkon nie je až taký problém ako priestor. Interná pamäť je obmedzenejšia.

"Nie som si istý, čo sa snažíte robiť vo vašomcode. Ak chcete zobraziť dokument PDF v zariadení, potrebujete aplikáciu, ktorá dokáže zobraziť dokument PDF, a súbor PDF musíte prevziať z ľubovoľného miesta. Pozrite si aplikáciu DownloadManager na prevzatie z webu: prevezme ju do externého úložiska, ale súbor môžete skopírovať do interného ukladacieho priestoru a odstrániť externú kópiu, keď skončíte.

Môžem vám pomôcť pri prezeraní PDF. Niekoľko aplikácií to robí, ale nie je zabudované do systému Android.