3

我们正在使用Google Analytics(分析)来跟踪我们的应用程序的哪些功能正在使用以及如何使用,但是此问题也适用于您想要在调用ACTION_SEND Intent之后知道用户所做的任何情况。Android 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来代替,但这似乎只是返回他们是否完成或取消共享(甚至在不同的应用程序中似乎不一致地实现) - 它肯定不会告诉我他们所做的事情。

在这一点上,它看起来像为了有我的分析,我将不得不通过Facebook和Twitter使用自己的和他们各自的SDK的自定义操作实现共享?

这似乎是一个耻辱,因为它破坏了安卓的优越的功能之一 - 能够使用您的首选电子邮件,Twitter,Facebook和浏览器应用程序....

+0

好问题。我一直在试图弄清楚完全一样。但经过一段时间的努力,我只能断定你甚至不知道他们是否输入了电子邮件/脸谱/短信应用程序。希望这里有人知道这一点。 – 2011-02-09 20:22:38

回答

0

如何从Android日志阅读?我期望这些日志包含他们选择的细节。丑,但它可能工作。

1

如果您要自己创建意向选择列表,而不是允许Intent.createChooser为您完成,您可以在自己执行之前查看选定了哪个意图。

Here is how Gallery3D does it,来自Android源代码。它向软件包管理器查询与您要运行的Intent匹配的软件包,并返回一个ResolveInfo的列表,您可以使用该列表向用户提供他们的选择,然后记录他们的选择并根据他们的选择启动活动。

+0

由于安全原因,上面链接的网站已关闭。有人知道其他地方的代码可以找到吗? – howettl 2011-09-22 18:11:16

相关问题