安装Receiver的onReceiver从未调用过

时间:2017-07-25 16:31:16

标签: android android-intent broadcastreceiver android-broadcast android-broadcastreceiver

我有一个自定义接收器,可以在安装应用程序时处理INSTALL_REFERRER意图。它在测试期间被调用了一次或两次,但现在根本没有被调用。我正在使用模拟器进行测试,并已完成this test documentation中的说明,以向模拟器广播安装意图。我还确保将我的Android SDK ADB连接到模拟器,因此它应该接收广播。在终端中,它表示我的广播成功,但是当我从全新安装启动应用程序时,onReceive从未被调用。

这是接收者的骨架:

public class CustomReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        //do stuff
        //log stuff
    }
}

这是我的清单:

<receiver
    android:name="path.to.CustomReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER"/>
    </intent-filter>
</receiver>

我尝试使用新的模拟器来确保它不会将这些调用列入黑名单,并查看了我能找到的有关此内容的所有文档和帖子,但似乎没有任何效果。我感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您引用的文档来自2013年。最近的文档建议使用InstallReferrerReceiver,专门用于处理该意图:

  

Google Play com.android.vending.INSTALL_REFERRER意图是在从Google Play商店安装应用时广播的。 [InstallReferrerReceiver]侦听该Intent,将安装引荐来源数据传递给GTM for Mobile Apps和Google Analytics。