编程语言
首页 > 编程语言> > android-在启动应用程序之前未收到INSTALL_REFERRER

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:

  1. Verify that your application is not currently running.
  2. 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