# Fragen zum Speichern einer Datei auf dem Gerät?



## bruce85 (28. Mai 2015)

Hallo nochmal,
ich habe ein kleines Problem mit meiner App, diese ich in Google-Play veröffentlicht hab.
Folgendes:
Ich habe ein neues Update erstellt, indem die Daten verschlüsselt sind und im Ordner "Telefonspeicher/Test" abgelegt werden.
Das klappt auch alles mit meinem Galaxy S5, nur als ich es jetzt mit meinem Tablet getestet habe, habe ich festgestellt, dass es auf dem Gerät nicht speichern kann, der Ordner Test wurde auch nicht erstellt.

Hier ist mal ein Beispiel, wie ich die Dateien auf dem Gerät speichern lasse:

```
File dataFileDir = new File(Environment.getExternalStorageDirectory(), "Test/data");
if (!dataFileDir.exists() && !dataFileDir.isDirectory()) {
	if (dataFileDir.mkdirs()) {
		Log.i("CreateDir","App dir created");
	} else {
		Log.w("CreateDir","Unable to create app dir!");
	}
} else {
	Log.i("CreateDir","App dir already exists");
}

File dataFile = new File(Environment.getExternalStorageDirectory(), "Test/data/"+bytesToHex(fileNameEncrypted)+".dat");  
strDataFile = strDataFile + "test";
try {
	byte[] textEncrypted = null;
	try {
		textEncrypted = encrypt(KEY, strDataFile);
	} catch (GeneralSecurityException e1) {
		e1.printStackTrace();
	}
	strDataFile = ""+bytesToHex(textEncrypted);
                
	FileOutputStream fos = new FileOutputStream(dataFile);
	fos.write(strDataFile.getBytes());
	fos.close();
} catch (IOException ee) {
	ee.printStackTrace();
}
if (!dataFile.exists()) {
	Toast.makeText(activity, "Datei kann nicht auf dem Gerät abgelegt werden.", Toast.LENGTH_LONG).show();
}
```

Kann es Vielleicht daran liegen?

```
Environment.getExternalStorageDirectory()
```
Also, dass es nicht auf allen Geräten funktioniert?

Ich danke euch schonmal für die Hilfe.

Gruss


----------



## VfL_Freak (29. Mai 2015)

Moin,


bruce85 hat gesagt.:


> ... als ich es jetzt mit meinem Tablet getestet habe, habe ich festgestellt, dass es auf dem Gerät nicht speichern kann, der Ordner Test wurde auch nicht erstellt.


Und das heißt *was* ??
Fehlermeldung ??
Stacktrace ??

Gruß Klaus


----------



## Ch4t4r (29. Mai 2015)

Ein kleiner Tipp noch: dadurch, dass die apps bei Google gehostet werden, werden sie beim Runterladen aus deren Standort aus den USA exportiert. Die USA haben Regulierungen für den Export von Kryptographie, am besten informierst du dich in diese Richtung, da (soweit ich weiß) bei Missachtung 200.000 $ Strafe drohen. Es kann aber sein, dass ich nicht up-to-date bin, was das angeht.


----------



## bruce85 (29. Mai 2015)

Vielen Dank für die antworten.

Ich hab den Fehler gefunden.
Das Problem war, das ich beim Update, den Pfad für die Daten geändert hab und die jenigen, die die App noch nicht Installiert hatten, wurde kein Ordner erzeugt.

Ich habe mehrere Methoden in meinem Quelltext und hab an der bestimmten stelle, noch den Befehl, um den Ordner zu erzeugen, eingefügt und jetzt funktioniert es endlich.



Ch4t4r hat gesagt.:


> Ein kleiner Tipp noch: dadurch, dass die apps bei Google gehostet werden, werden sie beim Runterladen aus deren Standort aus den USA exportiert. Die USA haben Regulierungen für den Export von Kryptographie, am besten informierst du dich in diese Richtung, da (soweit ich weiß) bei Missachtung 200.000 $ Strafe drohen. Es kann aber sein, dass ich nicht up-to-date bin, was das angeht.



Das verstehe ich gerade nicht, Sorry.
Ich werde mich mal darüber informieren, vielen Dank.

Gruss


----------



## Ch4t4r (29. Mai 2015)

Kryptographie galt in den USA lange als Waffe und der Export aus den USA war dementsprechend verboten. Dies wurde stark gelockert, einige Auflagen existieren jedoch noch. Eine gute Zusammenfassung findest du unter https://msdn.microsoft.com/de-de/library/windows/apps/xaml/hh694069.aspx . Dies ist zwar eher an Windows Phone Entwickler gerichtet,  gilt aber auch für Android Entwickler. Dabei ist egal, ob du in den USA lebst, an die Bestimmungen hast du dich zu halten.


Schöne Grüße,

Daniel


----------



## bruce85 (29. Mai 2015)

Sorry, aber ich weiss nicht, was das mit meiner App zu tun hat.

Ich habe ein ganz normaler App, indem die eingaben von meiner App einfach gespeichert werden und beim wieder öffnen der App, wieder ausgelesen werden.

*Edit:* Ich habe mir das durchgelesen, aber ich speichere ja nur die Daten von meiner App ab, löschen oder sonstiges, funktioniert ja.
Nur werden die Daten, wenn man sie öffnet, in Hexadezimalzahlen angezeigt.

Gruss


----------



## Ch4t4r (29. Mai 2015)

Du benutzt Verschlüsselung in deiner app. Verzeihe mir, falls ich mich irre, aber egal wie du die Verschlüsselung einsetzt, entspricht sie nicht der Anforderung für Software, die keiner Regulierung unterliegt, machst du dich strafbar. Ob du die Daten speicherst, versendest oder sonstwas damit machst, Kryptographie wird reguliert. Da ich aber leider kein beamten-englisch kann und die Erklärungen dürftig sind, kann ich mich irren.


Schöne Grüße, 

Daniel


----------



## bruce85 (29. Mai 2015)

Achso, ich danke Dir für die Info.

Gruss


----------

