我想在我自己的接收器上捕获INSTALL_REFERRER意图。 我实现了接收器
public class InstallReferrerReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("Broadcast", "RECEIVED!");
}
}
并在Manifest中添加
<receiver
android:name=".receiver.InstallReferrerReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER"/>
</intent-filter>
</receiver>
当我想测试接收器时,我安装我的应用程序(不是启动)并通过adb发送广播
am broadcast -a com.android.vending.INSTALL_REFERRER --es "referrer" "utm_medium=partner&utm_campaign=partner_name"
但是看不到任何日志。在lounch之后,它正常工作并接受意图。
来自&#34;测试Google Play广告系列衡量标准&#34;
将INSTALL_REFERRER意图广播到您的应用程序:
- 验证您的应用程序当前是否正在运行。
- 打开终端并运行以下命令:...
醇>
但在我第一次启动应用程序之前,我的接收器没有收到意图。这是正确的行为吗?如果我使用referrer params从市场安装应用程序,我会收到此意图吗?
由于
答案 0 :(得分:1)
发送Intent.FLAG_INCLUDE_STOPPED_PACKAGES
时必须设置标志broadcastintent
。
Bundle extras = new Bundle();
extras.putString("referrer", referrer);
Intent intent = new Intent("com.android.vending.INSTALL_REFERRER");
intent.putExtras(extras);
intent.setPackage(packageChanged);
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(intent);