Datei (z. B. *.jpg oder *.txt) mit ins .APK packen?

J

Johan

Dauergast
255
Ich will in meinem Projekt eine Textdatei und mehrere Bilderdateien mitliefern. Auf diese soll der Benutzer keinen Zugriff haben (falls er kein Root hat natürlich). Ich habe jetzt schon über Google herausgefunden, das solche Dateien und Verzeichnisse unterhalb von:

/data/data/package.name/files

abgelegt werden. Mein Problem:

Wie bekomme ich Dateien in Eclipse (oder sonstwie) so in das Verzeichnis, dass ich sie später von meiner App aus öffnen kann. Ich habe das files-Verzeichnis in Eclipse angelegt und die Dateien bzw. das Verzeichnis mit Eclipse dorthin importiert und sehe es auch im Package Explorer. Als Code, um zu sehen ob die Dateien verfügbar sind, benutze ich folgendes (output ist ein TextView):

Code:
String dirname=new String(new ContextWrapper(cntxtB).getFilesDir().toString());
String pathname=dirname+"/pic/Sehtest01.jpg";
output.append("\n"+pathname+"\n");
File sehtestTst=new File(pathname);
if (sehtestTst.exists())
    output.append("OK");
else
    output.append("Oops");
Funktioniert aber nicht, im TextView wird immer "Oops" ausgegeben. Die Datei "pic/Sehtest01.jpg" wurde also nicht in das APK übernommen und in meinem privaten Verzeichnis (data/data/hps.sehtest/files) abgelegt.

Im Package Explorer fehlt beim Verzeichnis File auch dieses Zeichen darüber, das aussieht wie ein spiegelverkehrtes D mit einem waagrechten Strich drinnen.

Habe jetzt so ziemlich alles versucht (z. B. die Datei oder das ganze files-Verzeichnis in den res-Ordner verschoben) und stundenlang gegoogelt. Ich schaffe es nicht, diese Dateien mit ins APK zu packen.
 
Ja das funktioniert zwar, aber dann kann man sie nur über den AssetManager ansprechen, der doch sehr eingeschränkte Möglichkeiten bietet. Bei einer *.jpg-Datei kann man z. B. bei Zugriff über das Dateisystem erstmal die Bildgröße ermitteln, ohne das Bild zu öffnen. Das geht bei Assets nicht.

Ich habe mich auch mal bei anderen Apps in deren Verzeichnis umgesehen, bei etlichen ist das "files"-Verzeichnis (unterhalb von /data/data/package.name/) vorhanden, und es gibt ja auch eine API in Android, um das zu ermitteln. Also irgendwie muss es möglich sein, da Dateien reinzupacken.
 

Ähnliche Themen

S
Antworten
33
Aufrufe
2.674
Sempervivum
S
B
Antworten
4
Aufrufe
495
bb321
B
M
  • MikelKatzengreis
Antworten
5
Aufrufe
134
swa00
swa00
Zurück
Oben Unten