我们正在使用Google Analytics跟踪我们正在使用的应用程序的功能以及使用方式,但此问题也适用于您想要在调用ACTION_SEND意图后了解用户所执行操作的任何情况。
基本上,我想使用此功能允许用户共享内容(电子邮件,Twitter,Facebook等)。这非常有效地使用Android Intent功能,允许用户选择他们喜欢的电子邮件客户端,Twitter应用程序,等。
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和浏览器应用程序....
答案 0 :(得分:1)
如果您要自己创建意图选择列表,而不是允许Intent.createChooser
为您执行此操作,您可以在执行之前查看选择了哪个意图。
Here is how Gallery3D does it。它向包管理器查询与您要求运行的Intent匹配的包,并返回可用于向用户显示其选择的ResolveInfo
列表,然后记录他们的选择并使用他们的选择启动Activity。
答案 1 :(得分:0)
如何阅读Android日志?我希望日志包含他们所选内容的详细信息。丑陋,但它可能会奏效。