我有图像列表,我想分享选择的图像。要做到这一点,我使用了 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