android-在启动应用程序之前未收到INSTALL_REFERRER
作者:互联网
我想在自己的接收方处接收INSTALL_REFERRER的意图.
我实现了接收器
public class InstallReferrerReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("Broadcast", "RECEIVED!");
}
}
并添加清单
<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"
但是看不到任何日志.一顿后,它可以正常工作并收到意图.
来自“测试Google Play广告系列衡量”
To broadcast the INSTALL_REFERRER intent to your application:
- Verify that your application is not currently running.
- Open a terminal and run this command: …
但是在我第一次启动应用程序之前,我的接收者没有收到意图.这是正确的行为吗?如果我从带有引荐来源商参数的市场安装应用程序时收到此意向书?
谢谢
解决方法:
在Android 3.1上,应用程序的BroadcastReceiver(或任何其他组件)在用户至少启动一次应用程序之前不会被触发.在此之前,它处于“停止”状态
那is an intended behaviour并防止了一些安全隐患.
标签:android-broadcast,android-intent,broadcastreceiver,android 来源: https://codeday.me/bug/20191028/1954417.html