3

我们正在使用 Google Analytics 来跟踪我们的应用程序的哪些功能正在被使用以及如何使用,但这个问题也可能适用于您想知道用户在调用 ACTION_SEND Intent 后做了什么的任何情况。

基本上,我想使用此功能来允许用户共享内容(电子邮件、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 和浏览器应用程序......

4

2 回答 2

1

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

以下是 Gallery3D 的做法,来自 Android 源代码。它会在包管理器中查询与您要求运行的 Intent 匹配的包,并返回一个列表ResolveInfo,您可以使用该列表向用户展示他们的选择,然后记录他们的选择并使用他们的选择启动 Activity。

于 2011-02-09T20:33:50.253 回答
-1

从 Android 日志中读取怎么样?我希望日志包含他们选择的内容的详细信息。丑陋,但它可能会工作。

于 2011-02-09T20:09:23.300 回答