在手动启动应用程序之前,com.android.vending.INSTALL\u referer不会被触发

在手动启动应用程序之前,com.android.vending.INSTALL\u referer不会被触发,android,google-play,broadcastreceiver,install-referrer,Android,Google Play,Broadcastreceiver,Install Referrer,我正在构建一个应用程序来创建“事件”,在创建事件后,您可以通过(除其他方式外)发送带有邀请链接的电子邮件来邀请他人 如果用户没有安装应用程序,我希望有一种方法允许用户安装应用程序,然后自动“接受”邀请 因此,我读到一种方法是使用com.android.vending.INSTALL\u refererreceiver,当用户使用如下链接安装应用程序时,广播接收器将被执行,我将能够读取“referer”并正确操作 我在清单中添加了以下内容: <receiver android:nam

我正在构建一个应用程序来创建“事件”,在创建事件后,您可以通过(除其他方式外)发送带有邀请链接的电子邮件来邀请他人

如果用户没有安装应用程序,我希望有一种方法允许用户安装应用程序,然后自动“接受”邀请

因此,我读到一种方法是使用
com.android.vending.INSTALL\u referer
receiver,当用户使用如下链接安装应用程序时,广播接收器将被执行,我将能够读取“referer”并正确操作

我在清单中添加了以下内容:

<receiver
    android:name=".receivers.InstallReceiver"
    android:exported="true">
    <intent-filter>
        <action android:name="com.android.vending.INSTALL_REFERRER" />
    </intent-filter>
</receiver>
为了测试它,我正在做:

am broadcast -a com.android.vending.INSTALL_REFERRER --es "referrer" "eventId=1234"
当应用程序正在运行时,或者如果应用程序至少打开一次,则此选项有效。但是,如果我安装应用程序时正在执行
adb install app.apk
,然后
am broadcast…
(应用程序从未打开),则不会调用
onReceive
方法。如果我打开应用程序,然后
am broadcast…
,现在它可以工作了

我发现了这个:(来自),所以这似乎是预期的行为

那么,我遗漏了什么?如果在手动打开应用程序之前不会收到接收器,
com.android.vending.INSTALL\u referer
有什么意义


其想法是:安装应用程序后,将事件id保存在共享首选项中,然后,当应用程序第一次打开时,检查共享首选项中是否存储了一些值,如果是,则“接受邀请”。

我被告知,当从PlayStore安装应用程序时,这应该起作用,但我需要第二种意见。。。你解决了吗?我也遇到了同样的问题,我想知道这是Play Store的工作方式还是我们的代码中的问题我被告知当应用程序从Play Store安装时应该可以工作,但我想听听第二种意见。。。你解决了吗?我也有同样的问题,我想知道这是Play Store的工作方式还是我们的代码中的问题
am broadcast -a com.android.vending.INSTALL_REFERRER --es "referrer" "eventId=1234"