Drexel
Lt. Commander
- Registriert
- Jan. 2012
- Beiträge
- 1.917
Hallo Forum,
ich entwickel gerade eine Android (und potenziell auch iOS) App mit Flutter. Ich habe auch einen Datenexport für die App geschrieben, der funtkioniert auch soweit.
Hier der Code dazu:
Den Zielpfad hole ich mittels getExternalStorageDirectory() aus der path_provider Extension, das ist ein Bereich wo eine App ohne weitere App Berechtigungen reinschreiben darf.
Bis hierhin dachte ich, dass es gut funktioniert, bis ich probiert habe auf die Datei von meinem PC aus zuzugreifen. Ich sehe die Datei zwar, aber kann sie nicht lesen/kopieren. Ich habe festgestellt, dass das an den Dateiberechtigungen liegt, es scheint auch im Bereich des normalen zu sein.
So sehen die Dateiberechtigungen auf der Command Line mit
Nur der Owner darf lesen und schreiben. Das scheint wohl je nach Verzeichnis auch relativ normales Verhalten zu sein, habe diesen Artikel dazu gefunden:
https://waqasyounis334.medium.com/u...permissions-in-android-and-linux-f1ec1eb2b0b7
Ich denke die Group ext_data_rw brauch auch noch Berechtigungen, so sieht es zumindest bei anderen Apps in der Verzeichnisstruktur aus und darauf kann ich dann auch zugreifen:
So nun finde ich wenige Infos dazu, wie man die Dateiberechtigungen mit Flutter/Dart richtig setzt, hat jemand Erfahrung damit?
Da denk ich mir immer, das kann doch bei sowas trivialem wie eine Datei zu speichern nicht sein.
ich entwickel gerade eine Android (und potenziell auch iOS) App mit Flutter. Ich habe auch einen Datenexport für die App geschrieben, der funtkioniert auch soweit.
Hier der Code dazu:
Code:
Future<void> exportDatabase() async {
_fileTransfering = true;
await _database!.close();
//will probably only work on Android, for iOS maybe another solution like the os' share functionality is needed
Directory exportDirectory = Directory(join((await getExternalStorageDirectory())!.path, OpenEatsJournalStrings.export));
await exportDirectory.create(recursive: true);
String targetFile = join(exportDirectory.path, _databaseFileName);
File sourceFile = File(_databaseFile);
await sourceFile.copy(targetFile);
_database = await _initDb();
_fileTransfering = false;
}
Den Zielpfad hole ich mittels getExternalStorageDirectory() aus der path_provider Extension, das ist ein Bereich wo eine App ohne weitere App Berechtigungen reinschreiben darf.
Bis hierhin dachte ich, dass es gut funktioniert, bis ich probiert habe auf die Datei von meinem PC aus zuzugreifen. Ich sehe die Datei zwar, aber kann sie nicht lesen/kopieren. Ich habe festgestellt, dass das an den Dateiberechtigungen liegt, es scheint auch im Bereich des normalen zu sein.
So sehen die Dateiberechtigungen auf der Command Line mit
aus:c:\sdks\Android\platform-tools\adb -s 28051FDH300A6D shell ls -all /storage/emulated/0/Android/data/com.drexeldevelopment.openeatsjournal/files/export/
Nur der Owner darf lesen und schreiben. Das scheint wohl je nach Verzeichnis auch relativ normales Verhalten zu sein, habe diesen Artikel dazu gefunden:
https://waqasyounis334.medium.com/u...permissions-in-android-and-linux-f1ec1eb2b0b7
Ich denke die Group ext_data_rw brauch auch noch Berechtigungen, so sieht es zumindest bei anderen Apps in der Verzeichnisstruktur aus und darauf kann ich dann auch zugreifen:
c:\sdks\Android\platform-tools\adb -s 28051FDH300A6D shell ls -all /storage/emulated/0/Android/data/com.ebay.kleinanzeigen/files/logs
So nun finde ich wenige Infos dazu, wie man die Dateiberechtigungen mit Flutter/Dart richtig setzt, hat jemand Erfahrung damit?
Da denk ich mir immer, das kann doch bei sowas trivialem wie eine Datei zu speichern nicht sein.