alexrintt / shared-storage

Flutter plugin to work with Android external storage.
http://alexrintt.io/shared-storage/
MIT License
53 stars 24 forks source link

openDocumentFileWithResult - OpenDocumentFileResult.failedDueActivityNotFound #158

Open hayesOw opened 1 month ago

hayesOw commented 1 month ago

Describe the bug Cannot open file after writing using openDocumentFileWithResult, the file is written correctly and can be found via DocumentFile

Expected behavior Open with dialog to open, I have a few file manager apps so they must be able to open the file

Screenshots If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

Code example

  Future<DocumentFile?> getSafDirectory() async {
    final List<UriPermission>? grantedUris = await persistedUriPermissions();

    Uri? grantedUri = grantedUris != null && grantedUris.isNotEmpty
        ? grantedUris.first.uri
        : await saf.openDocumentTree();

    if (grantedUri == null) {
      return null;
    }

    DocumentFile? grantedDirectory = await grantedUri.toDocumentFile();

    if (grantedDirectory == null) {
      return null;
    }

    DocumentFile? amaraDirectory =
        await grantedDirectory.findFile('AmaraHealth') ??
            await saf.createDirectory(grantedUri, 'AmaraHealth');

    return amaraDirectory;
  }

  Future<bool> openAndroid() async {
    DocumentFile? amaraDirectory = await getSafDirectory();

    if (amaraDirectory == null) {
      return false;
    }

    DocumentFile? file = await amaraDirectory.findFile('$fileName.$ext');

    if (file == null) {
      return false;
    }

    OpenDocumentFileResult result = await openDocumentFileWithResult(file.uri);

    return true;
  }