Hallo!
Ich bin neu hier im Forum und habe gleich eine Frage. Ich möchte Dateien vom Internen in den Externen Speicher (SD-Card) mittels APP kopieren und bekomme immer den Fehler "Access denied" mit Delphi Entwicklung oder "Datei nicht gefunden" mit Android Studio.
ASUS Tablet mit Android-Version 6.0.1.
Ich spreche die Dateien mit folgenden Pfaden an: Im Internen Speicher auf "/sdcard/DCIM/Test/INT_datei.txt" und im externen Speicher (SD-Card) auf "/storage/3636-6430/Test/EXT_datei.txt"
Kann mir bitte jemand weiterhelfen, ich probiere schon einige Tagen, aber es funkt nicht.
Danke und LG
Manfred
Dateien vom Internen in den Externen Speicher kopieren
-
-
Hallo das schreiben auf die echte Physikalische SD Karte ist ab Android 5 nicht mehr über die klassischen Methoden möglich.
Versuche es mal über den StorageManaager.
Mit der Neusten Android Version wird es sowieso nur noch einer dieser varianten geben.
-
Hallo!
Danke für die rasche Antwort. StorrageManager war ein guter Tip. Aber ich kämpfe seit gestern damit herum, aber dieser verlangt API 24 und ich habe nur 23.
Es soll aber eine Lösung auch für 23 geben, dass habe ich gelesen, jedoch habe ich immer noch nichts passendes gefunden. Für ein Stück Quellcode wäre ich sehr dankbar.
Ich verzweifle bald. Es kann doch in Android nicht so mühsam sein eine Datei von A nach B zu kopieren. In anderen Programmiersprachen geht's doch auch einfacher.Vielleicht kann mir jemand weiterhelfen.
Danke und LG
Manfred -
Zitat
Es kann doch in Android nicht so mühsam sein eine Datei von A nach B zu kopieren. In anderen Programmiersprachen geht's doch auch einfacher.
Das ganze hat nichts mit der Programmiersprache zu tun sondern mit dem Betriebssystem also Android.
Android hat seit KitKat einiges in der Richtung verändert.
Du musst immer erst prüfen welche Version du hast um die richtige Variante auszuwählen.Es ist nicht immer gleich den Path zur sd karte zu finden.
Bei API 23 mache ich das so
File[] fs = context.getExternalFilesDirs(null);
String extPath = "";
// at index 0 you have the internal storage and at index 1 the real external...
if (fs != null && fs.length >= 2)
{
extPath = fs[1].getAbsolutePath();
}Beachte aber auch das du ab API 23 die Permission auch zur Laufzeit abfragen musst.
<uses-permission android:name="android.permission.STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Reicht da nicht mehr.http://www.diller-technologies.de/android_fileStorage.html
ansonsten würde ich es mal mit dem Storage Access Framework versuchen.
https://www.techotopia.com/ind…_Access_Framework_Example
ab APi 24 ist der StorrageManager die bessere wahl.
-
Sorry, ich meinte eh das Betriebssystem.
DANKE DANKE, Deine Anleitung war perfekt, jetzt funkt es.
Aber noch eine Kleinigkeit: In Deinem Beispiel gibt Du "extPath = fs[1].getAbsolutePath();" an. Dann steht die Datei im Verzeichnis Android\Data\...... Mit welchem Befehl kann ich in meine selbst erstellten Verzeichnisse schreiben, das in der gleichen Ebene wie Android steht, und auch von PC aus sichtbar ist.
Danke und LG
Manfred
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!