问题:当我启动应用程序以检查共享视频时,共享视频后会显示“ 无法导入”和“ 该视频不再可用”。
Android版本: Oreo(8.0)
代码:我正在尝试使用以下代码使用意图与其他应用共享视频:
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("video/*");
share.putExtra(Intent.EXTRA_SUBJECT, "abc");
share.putExtra(Intent.EXTRA_TITLE, "abcd");
File imageFileToShare = new File(Environment.getExternalStorageDirectory() + "/mygallery/" + "airp.mp4");
Uri uri = FileProvider.getUriForFile(Main2Activity.this, "abc.dcf.fileprovider", imageFileToShare);
share.putExtra(Intent.EXTRA_STREAM, uri);
share.setPackage("com.abc.in");
startActivity(Intent.createChooser(share, "Message"));
上面的代码可以很好地共享图像,但是不能共享视频。
我曾尝试过的事情:我尝试过共享3gp,mkv,mp4等各种文件类型,但没有任何效果,我也遇到过各种类似的问题,但万一没有解决方案的视频。
请帮助我解决此问题,以及是否还有其他替代方法?
答案 0 :(得分:2)
您可以将其添加到OnCreate
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
如果这对您不起作用,
通过此操作将提供者添加到清单
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths"/>
</provider>
如果您使用的是androidx,请记住使用android:name="androidx.core.content.FileProvider"
在xml目录(res / xml)中创建一个文件,并命名为provider_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="."/>
</paths>
替换
Uri uri = FileProvider.getUriForFile(Main2Activity.this, "abc.dcf.fileprovider", imageFileToShare);
与此
Uri uri = FileProvider.getUriForFile(Main2Activity.this, BuildConfig.APPLICATION_ID + ".provider",imageFileToShare);