2

我有图像列表,我想分享选择的图像。要做到这一点,我使用了 FileProvider。我正在Android 10上运行应用程序。我也尝试过不使用shareIntent(Intent.EXTRA_STREAM,uri),然后应用程序仅通过对话框打开共享。在不共享任何内容后仅返回应用程序。

在 AndroidManifest.xml 中;

<provider
        android:name="androidx.core.content.FileProvider"
        android:authorities="${applicationId}.provider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/file_provider_paths" />
    </provider>

在路径中;

<paths>
<files-path
    name="files"
    path="/" />
<cache-path
    name="cache"
    path="/" />

这是我使用和开始意图的方式,

 int pos = getAdapterPosition();

 File imageFile = new File(imageQuotes.get(pos).getPath());
 Uri uri = FileProvider.getUriForFile(mContext, BuildConfig.APPLICATION_ID + ".provider", imageFile);

 Intent shareIntent = new Intent(Intent.ACTION_SEND);
 shareIntent.setDataAndType(uri,"image/*");
 shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
 shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
 mContext.startActivity(shareIntent);

运行应用程序时,在我为 ie 选择了 WhatsApp 之后。我的图像文件作为 BIN 文件发送,并且在 whatsapp 上没有图像预览。uri 不为空并且是content://com.scoto.partestestapplication.provider/files/SavedImageQuotes/Partes_1601815401590

4

0 回答 0