何时播出“com.android.vending.INSTALL_REFERRER”获取发送?

时间:2012-11-29 02:27:16

标签: android google-play

这是我的问题 我的目标是通过Google Play跟踪应用安装。 我有一个在我的应用程序中编写的BroadcastReceiver。所以当应用程序从goole play下载时,根据google页面会有一个广播“com.android.vending.INSTALL_REFERRER”: https://developers.google.com/analytics/devguides/collection/android/v2/campaigns

但我的问题是,如果在我的应用程序安装完成后发生这种情况,那么我如何启动应用程序附带的广播接收器,以接收此意图。

换句话说,我的逻辑是我的应用程序必须完成安装,以便我执行任何接收。或者这是否意味着,第一次启动我的应用程序的意图是“com.android.vending.INSTALL_REFERRER”意图,以便将intent传递给我的onCreate()函数。

我在这里有点困惑,并没有看到为此找到一些好的文件。 有人指出我正确的方向吗?谢谢。

2 个答案:

答案 0 :(得分:2)

“请记住,当调用接收器时,您的应用程序的其余部分将不会运行,因此通常您会在某处(如SharedPreferences)记录referrer字符串,然后在运行主应用程序时将其收集起来并使用分析库。(您当然不希望在接收器中等待网络连接和类似的阻止处理!)

参考:[“http://blog.appington.com/2012/08/01/giving-credit-for-android-app-installs/] [1]

答案 1 :(得分:0)

安装该应用程序后,此Intent将被“解雇”。

如果您的AndroidManifest.xml中声明了一个接收器,其intent-filter与触发的Intent匹配,那么该接收器代码将被启动并传递Intent。它不会传递给您的应用程序的onCreate(),也不会传递给以后启动的任何Activity。

<receiver
        android:exported="true"
        android:name="com.yourapp.InstallReceiver">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
</receiver>

在此广播接收器代码中,您可以解析收到的意图并执行您想要的任何操作: 例如启动后台线程并在本地或网络上记录该信息。

Intent甚至可能包含一个“引用者”(即导致此下载和安装的Playstore的链接?)最初传入的标识符(通过商店中应用程序链接的附加参数)。这对于跟踪实际导致应用程序安装的引荐来源非常有用。

此外,该链接可能包含用于配置应用程序的其他参数,您在接收器代码中处理(和存储?),然后在稍后启动应用程序时读取。