根据these指示,我们能够实现与Instagram Stories的共享,但不能与Facebook Stories共享。尽管安装和更新了Facebook应用,但Android无法为意图com.facebook.stories.ADD_TO_STORY
找到应用。有没有人能够做到这一点?
答案 0 :(得分:1)
这可能为时已晚,但是我想回答一下,如果它可以帮助那些可能在没有“意图选择器”对话框的情况下共享到instagram的人。
Facebook希望我们启动一个意图选择器对话框,以便从Facebook应用程序本身中的4个-5个活动中进行选择,这些活动可以处理com.facebook.stories.ADD_TO_STORY作为动作。
尽管如此,这是我用来从facebook应用程序启动确切的故事编辑器屏幕的代码。它使用ACTION_SEND而不是com.facebook.stories.ADD_TO_STORY。 因此,首先在清单中的应用程序标记内定义一个文件提供程序
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_provider_paths" />
</provider>
然后将file_provider_paths.xml保留在res目录的xml文件夹中。 file_provider_paths.xml
<paths>
<external-path
name="share"
path="/" />
</paths>
然后准备一个您要共享的文件
File file = new File(imagePath);
Uri fileUri = FileProvider.getUriForFile(getApplicationContext(),getPackageName()+".fileprovider",file);
然后将意图发送到instagram
Intent storiesIntent = new Intent(Intent.ACTION_SEND);
storiesIntent.setComponent(new ComponentName("com.instagram.android", "com.instagram.share.handleractivity.CustomStoryShareHandlerActivity"));
storiesIntent.setDataAndType(uri, "image/*");//for background image
storiesIntent.putExtra("interactive_asset_uri", uri);//for sticker assets
storiesIntent.putExtra("content_url", "https://dexati.com/");
grantUriPermission("com.instagram.android", uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(storiesIntent, 0);
在这里,我们明确调用了Facebook应用的故事编辑器活动。