背景
在我的Android应用中,用户可以将生成的图像共享给其他应用。它使用ACTION_SEND
意图很好地工作。
许多用户已经问过为什么他们不能直接分享到Instagram的故事。
最初我认为Instagram不支持接收故事的Intent(在某种程度上是正确的)。今天我搜索了它,并根据this documentation,分享到Instagram故事,必须使用单独的意图com.instagram.share.ADD_TO_STORY
。我试过了,它工作正常。
问题: 如何保留两个选项?
我考虑了很多,并提出了以下选择:
1)有两个单独的按钮。它会起作用,但看起来/感觉不好。
2)让我的应用程序接受ACTION_SEND
意图,将其命名为Share to Instagram Story,并将意图重定向到com.instagram.share.ADD_TO_STORY
意图。原则上,提出代理意图。
它会工作,看起来/感觉很好,但我不知道它是否允许(合法等),如果用户没有安装Instagram,我可以禁用意图。
3)将'com.instagram.share.ADD_TO_STORY'添加到ACTION_SEND
发布的app选择器中。这将是理想的,但我不知道该怎么做。
如果要向Intent
添加多个操作并创建一个选择器,请查看此示例:
Intent viewIntent = new Intent(Intent.ACTION_VIEW);
Intent editIntent = new Intent(Intent.ACTION_EDIT);
viewIntent.setDataAndType(uri, type);
editIntent.setDataAndType(uri, type);
Intent chooserIntent = Intent.createChooser(editIntent, "Open in...");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { viewIntent });
startActivity(chooserIntent);
更新:这是你的答案的好方法。 How to make an intent with multiple actions
我尝试了与Facebook
的官方文档相同的方法,然后在Huawai P9 Lite
,Huawai P20 Lite
和Samsung S8
上进行了测试 - 它仅用于Samsung S8
,原因不明(对我而言)。我放弃了它,显然,它不适用于大多数手机。