Jak*_*ake 68 android install referrer google-play google-play-services
我正在尝试注册一个广播接收器,它捕获Android从市场安装应用程序后启动的"com.android.vending.INSTALL_REFERRER"意图.
我在此处详细了解:http://code.google.com/mobile/analytics/docs/android/#referrals
但是,我无法使用Google Analytics,因此我创建了自己的解决方案.我在清单文件中添加了以下内容:
<receiver android:name="com.test.Receiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
并创建了一个基本的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);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,当安装应用程序时,接收器似乎没有捕获Intent(如果Intent甚至广播?)并且我没有记录输出.
我在某个地方出错了还是市场在安装应用程序时不再启动这些Intent?
小智 53
我会尝试帮助像我这样的人无法使install_referrer工作,以及谁找不到有关这些功能的任何有用信息.
笔记:
com.android.vending.INSTALL_REFERRER
将在安装过程中捕获,而不是在应用程序第一次启动时捕获.extras.getString("referrer")
是固定的,但内容可以是任何尊重http get语法的字符串值...referrer=thatsthevalue&thisisnot=xxx
上面的代码没问题,只是完成信息的一些解释:
<receiver>
标签必须是内
<application>
标签.但这一个
显然,你需要按照从移动设备和完整的测试的唯一方法链接发布在市场上测试应用程序.
最后和个人说明.
我不明白为什么这些信息被完全省略,我希望谷歌会采取行动来详细说明.
Mac*_*ibe 19
这可能有点晚了,但您可以在不使用Google Play的情况下测试安装引荐来源,只需使用ADB :)
从adb.exe运行此命令
adb shell
am broadcast -a com.android.vending.INSTALL_REFERRER -n your.package/path.to.your.BroadcastReceiver --es "referrer" "test_referrer=test"
Run Code Online (Sandbox Code Playgroud)
如果您在BroadcastReceiver中有日志记录设置,您将在LogCat中看到它弹出.
希望这可以帮助!
我认为这些答案必须是在Android 3.1之前编写的 - 因为事情已经以一种导入方式改变了.
系统现在将应用程序标记为处于休眠状态 - 在用户通过运行(或放置小部件)显式激活应用程序之前,它们不会收到INSTALL_REFERRER或任何其他广播.
好的,所以我找到了Intent没有启动的原因.显然你必须使用与此处概述的相同的参数名称:http://code.google.com/mobile/analytics/docs/android/#referrals
你不能像我一样使用你自己的参数名:S
归档时间: |
|
查看次数: |
74679 次 |
最近记录: |