File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ class AppDirectories extends _$AppDirectories with InfraLogger {
3737 dirs = (baseDir: portableDir, workingDir: portableDir, tempDir: await getTemporaryDirectory ());
3838 } else {
3939 final baseDir = await getApplicationSupportDirectory ();
40- final workingDir = Platform .isAndroid ? await getExternalStorageDirectory () : baseDir;
40+ final workingDir = Platform .isAndroid ? await _getAndroidWorkingDirectory () : baseDir;
4141 final tempDir = await getTemporaryDirectory ();
4242 dirs = (baseDir: baseDir, workingDir: workingDir! , tempDir: tempDir);
4343 }
@@ -52,6 +52,17 @@ class AppDirectories extends _$AppDirectories with InfraLogger {
5252 return dirs;
5353 }
5454
55+ static Future <Directory > _getAndroidWorkingDirectory () async {
56+ try {
57+ final extDir = await getExternalStorageDirectory ();
58+ if (extDir == null ) return getApplicationDocumentsDirectory ();
59+ if (extDir.existsSync ()) return extDir;
60+ await extDir.create (recursive: true );
61+ return extDir;
62+ } catch (_) {}
63+ return getApplicationDocumentsDirectory ();
64+ }
65+
5566 static Future <Directory > getDatabaseDirectory () async {
5667 if (kIsWeb) {
5768 return Directory ("." );
You can’t perform that action at this time.
0 commit comments