我们正在使用 Google Analytics 来跟踪我们的应用程序的哪些功能正在被使用以及如何使用,但这个问题也适用于您想知道用户在调用 ACTION_SEND Intent 后做了什么的任何情况。
基本上,我想使用此功能允许用户共享内容(电子邮件、推特、Facebook 等)。使用现有的 Android Intent 功能效果非常好,允许用户选择他们喜欢的电子邮件客户端、推特应用程序,等等。
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
//Text seems to be necessary for Facebook and Twitter
sharingIntent.setType("text/plain");
sharingIntent.putExtra(Intent.EXTRA_TEXT, "whatever I want to share");
startActivity(Intent.createChooser(sharingIntent,"Share using"));
但是,我找不到任何方法来了解用户从 Intent 返回时做了什么。我研究过使用 startActivityForResult
代替,但这似乎只返回他们是否完成或取消共享(甚至这似乎在不同的应用程序中实现不一致) - 它当然没有给我任何信息他们做了什么。
在这一点上,为了获得我的分析,我似乎必须使用我自己的自定义操作及其各自的 SDK 通过 Facebook 和 Twitter 实现共享?
这似乎是一种耻辱,因为它破坏了 Android 的一项优秀功能 - 能够使用您喜欢的电子邮件、Twitter、Facebook 和浏览器应用程序....
最佳答案
如果您要自己创建意向选择列表,而不是允许 Intent.createChooser
为你做这件事,你可以在自己执行之前看到选择了哪个 Intent 。
Here is how Gallery3D does it , 来自 Android 源代码。它向包管理器查询与您要求运行的 Intent 相匹配的包,并返回 <a href="http://developer.android.com/intl/de/reference/android/content/pm/ResolveInfo.html" rel="noreferrer noopener nofollow">ResolveInfo</a>
的列表。您可以使用它向用户展示他们的选择,然后记录他们的选择并使用他们的选择启动 Activity。
关于Android ACTION_SEND Intent 和 Google Analytics - 我怎么知道他们选择了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4949766/