Instagram的视频分享Android Intent



关注Instagram的视频分享Android Intent。简单的编辑绕过选择器,直接启动Instagram。请参阅相关代码的要点和adb输出。

奇巧设备按预期工作,然而牛轧糖设备落在第20行,启动Play Store,好像没有安装Instagram。

在这两个设备上,ShareDialog的startInstagram()的第14行确实显示了一个视频分享功能应用程序的选择器,包括Instagram。

使用相同方法共享图像的相关代码在两个设备上都能正常工作。

UPDATE 1:实现新的ContentProvider方法会使Instagram在启动共享意图时崩溃。我将测试把视频分享到另一个社交网络上,看看是否有效。

UPDATE 2:原来Instagram不适合

share.setDataAndType(contentUri, "video/*"); .

分开设置,使一切井然有序。

share.setType("video/*"); share.putExtra(Intent.EXTRA_STREAM, contentUri);

在Android牛轧糖的gist上记录异常可以揭示问题:

android.os。FileUriExposedException: file:///storage/emululated/0/test.mp4 exposed beyond app through clipdata . itemgeturi ()

在Android牛轧糖上,你需要使用一个提供商:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    Uri contentUri = FileProvider.getUriForFile(getContext(), "com.your.package.fileProvider", newFile);
    intent.setDataAndType(contentUri, type);
}

见:android.os.FileUriExposedException: file:///storage/emululated/0/test.txt通过Intent.getData()暴露在app之外

这似乎是一个FileUriExposedException。如果你的targetSdkVersion为24或更高,你不能在Intent或其他地方使用Uri.fromFile()或其他file Uri值(例如,setSound()在' Notification '上)。

使用FileProvider通过ContentProvider提供文件

最新更新