我正在尝试注册一个广播接收器,该接收器在从市场安装应用程序后捕获由 Android 启动的“com.android.vending.INSTALL_REFERRER” Intent 。
我在这里关注细节:http://code.google.com/mobile/analytics/docs/android/#referrals
但是,我无法使用 Google Analytics,因此我创建了自己的解决方案。我在 list 文件中添加了以下内容:
<receiver android:name="com.test.Receiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
并创建了一个基本的 BroadcastReceiver 类:
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String referrerString = extras.getString("referrer");
Log.w("TEST", "Referrer is: " + referrerString);
}
}
但是,当安装应用程序时,接收器似乎没有捕捉到 Intent(如果 Intent 甚至被广播?)并且我没有得到任何日志输出。
我是不是在某个地方出错了,还是市场在安装应用时不再启动这些 Intent?
最佳答案
我会尽力帮助像我一样无法使 install_referrer 正常工作以及找不到有关这些功能的任何有用信息的人。
注意事项:
- Intent
com.android.vending.INSTALL_REFERRER
会被抓 在安装过程中,而不是在应用程序启动时 第一次。 - 推荐人...
extras.getString("referrer")
.. 是固定的,但内容可以是任何符合 http get 语法的字符串值...referrer=thatsthevalue&thisisnot=xxx
上面的代码没问题,只是一些解释来补全信息:
- Android list 。
<receiver>
标签必须在<application>
标签。 - 链接市场的正确url不是sdk中著名的google表单的结果
但是这个
显然,您需要在移动设备上点击链接,而完成测试的唯一方法是在市场上发布测试应用程序。
还有最后的个人说明。
我不明白为什么这些信息被完全省略了,我希望谷歌会采取行动详细说明。
关于android - 从 Android Market 安装应用后获取推荐人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4093150/