Android 广播安装引用人意图问题

Android 广播安装引用人意图问题,android,android-intent,google-analytics,broadcastreceiver,google-play,Android,Android Intent,Google Analytics,Broadcastreceiver,Google Play,我的Android清单文件 <service android:name="com.google.android.gms.analytics.CampaignTrackingService" /> <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver" android:exported="true" > &

我的Android清单文件

<service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
      <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
            android:exported="true" >
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
      </receiver>
答复如下:

Broadcasting: Intent { act=com.android.vending.INSTALL_REFERRER cmp=com.myapp.myapplication/com.google.android.gms.analytics.CampaignTrackingService (has extras) }
Broadcast completed: result=0
Broadcasting: Intent { act=com.android.vending.INSTALL_REFERRER cmp=com.myapp.myapplication/.ReferrerCatcher (has extras) }
Broadcast completed: result=0
现在,当我运行应用程序时,我得到了
I/GAV3(17797):Thread[GAThread,5,main]:没有找到活动数据。

然后我尝试了自定义接收器: 这是我的密码:

<service android:name="com.myapp.myapplication.ReferrerCatcher"/>
<receiver android:name="com.myapp.myapplication.ReferrerCatcher" android:exported="true">
  <intent-filter>
    <action android:name="com.android.vending.INSTALL_REFERRER" />
  </intent-filter>
</receiver>
这是我对定制接收器的测试:
~/development/sdk/platform tools$./adb shell am broadcast-a com.android.vending.INSTALL\u referer-n com.myapp.myapplication/com.myapp.myapplication.referercatcher--es“referer”“utm\u source=testSource&utm\u medium=testMedium&utm\u term=testTerm&utm\u content=testContent&utm\u campaign=testCampaign”

以下是回应:

Broadcasting: Intent { act=com.android.vending.INSTALL_REFERRER cmp=com.myapp.myapplication/com.google.android.gms.analytics.CampaignTrackingService (has extras) }
Broadcast completed: result=0
Broadcasting: Intent { act=com.android.vending.INSTALL_REFERRER cmp=com.myapp.myapplication/.ReferrerCatcher (has extras) }
Broadcast completed: result=0
现在,当我运行应用程序时,我得到的是:

08-15 14:59:38.391: D/INSTALL_RECEIVER(24996): Referer is: Intent { act=com.android.vending.INSTALL_REFERRER flg=0x10 cmp=com.myapp.myapplication/.ReferrerCatcher (has extras) } :: Bundle[{referrer=utm_source=testSource}]
这比上次考试好,但是我没有得到完整的推荐人。我刚刚得到消息来源。你能看一下代码,看看我有没有错吗?我已经为这段代码挣扎了两天了


提前谢谢。

简短而简单的回答。您必须对您的推荐人信息进行编码,否则您只能获得第一个参数。您可以更改参数的顺序,但仍然会得到第一个参数值

utm_source%3DtestSource%26utm_medium%3DtestMedium%26utm_term%3DtestTerm%26utm_content%3DtestContent%26utm_campaign%3DtestCampaign

您需要更改一些字符,如下所示: 改变 %26 —> &
%3D->=

你解决了上面的问题吗,因为我遇到的正是sameThanks的队友。我很久没有遇到这个问题了,所以我放弃了。我再也没有应用程序来测试它了。无论如何,谢谢你。