getStorageDirectory static method

Future<StorageStatus> getStorageDirectory(
  1. BuildContext context
)

Get external storage with request permission in Android Add key to Info.plist & WRITE_EXTERNAL_STORAGE to manifest.xml

Implementation

// iOS:
// Add the following keys to your Info.plist file, located in <project root>/ios/Runner/Info.plist:
// NSPhotoLibraryUsageDescription - describe why your app needs permission for the photo library.
// This is called Privacy - Photo Library Usage Description in the visual editor.
//
// Android:
// android.permission.WRITE_EXTERNAL_STORAGE - Permission for usage of external storage
static Future<StorageStatus> getStorageDirectory(BuildContext context) async {
  Directory? directory;

  if (Platform.isAndroid) {
    PermissionStatus result = await _requestStoragePermission(context);

    if (result == PermissionStatus.granted) {
      directory = await getExternalStorageDirectory();
    }

    return Future.value(StorageStatus(directory, result));
  } else {
    directory = await getApplicationDocumentsDirectory();

    return Future.value(StorageStatus(directory, PermissionStatus.granted));
  }
}