0

アプリから whatspp、gmail などの他のアプリに PDF ファイルを共有したいです。 Android 11 から導入されたスコープ ストレージ。URI を取得して いますEnvironment.getExternalStoragePublicDirectoryが、代わりにスコープ ストレージを使用する必要があります。

val file = File(
            Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).absolutePath,
            fileName
        )

val uri = Uri.parse(pdfUrl)
    val share = Intent()
    share.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
    share.action = Intent.ACTION_SEND
    share.type = "application/pdf"
    share.putExtra(Intent.EXTRA_STREAM, uri)
    startActivity(Intent.createChooser(share, "Share"))

Android のドキュメントによると、3 つの意図があります。

  1. -> インテント アクションを使用すると、ACTION_CREATE_DOCUMENTユーザーはファイルを特定の場所に保存できます。
  2. インACTION_OPEN_DOCUMENTテント アクションにより、ユーザーは特定のドキュメントまたはファイルを選択して開くことができます。
  3. インACTION_OPEN_DOCUMENT_TREEテント アクションにより、ユーザーは特定のディレクトリを選択できるようになり、アプリはそのディレクトリ内のすべてのファイルとサブディレクトリにアクセスできるようになります。

しかし、私の場合、上記の意図的なアクションは機能しません。ユーザーが他のアプリとファイルを共有できるように、さまざまな共有オプションをユーザーに表示したいと考えています。

私は何をすべきか?

4

0 に答える 0