saveToDownloadsAndroid static method

Future<bool> saveToDownloadsAndroid(
  1. String content,
  2. String fileName,
  3. String extension
)

Implementation

static Future<bool> saveToDownloadsAndroid(
    String content, String fileName, String extension) async {
  try {
    // 1. Ask user for a directory (if you don’t already have one)
    //    Use SAF to open a directory picker (with write permission)
    SafDocumentFile? treeUri =
        await safUtil.pickDirectory(writePermission: true);
    if (treeUri == null) return false;

    // 2. Prepare file name and MIME type
    // e.g. fileName = “MyFile”, extension = “md” → fullName = “MyFile.md”
    String fullName = "$fileName.$extension";
    String mimeType = getMimeType(extension);

    // Convert content to bytes
    Uint8List data = Uint8List.fromList(utf8.encode(content));

    // You can either write via `writeFileBytes` for small files, or via streaming
    // For simplicity, use `writeFileBytes` here:
    await safStream.writeFileBytes(
      treeUri.uri,
      fullName,
      mimeType,
      data,
      overwrite: true,
    );
    return true;
  } catch (e) {
    return false;
  }
}