我有一个Android 应用程序,用户需要注册。在发送注册信息时,我想要发送来自PlayStore
的参数(utm_source等),以了解用户从哪个广告系列而来。
因此,我的想法是使用自己的BroadcastReceiver
来处理INSTALL_REFERRER事件,将参数保存到文件中。当用户注册时,我将读取该文件并发送内容。
所以我创建了一个接收器:
public class CampaignBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String refferer = intent.getExtras().getString("referrer");
try {
FileOutputStream fos = context.openFileOutput("campaign", Context.MODE_PRIVATE);
fos.write(refferer.getBytes());
fos.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
new CampaignTrackingReceiver().onReceive(context, intent);
}
在 AndroidManifest.xml 文件中,我使用:
<service android:name="com.google.analytics.tracking.android.CampaignTrackingService"/>
<receiver android:name=".receiver.CampaignBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
当我使用谷歌的测试场景时,它可以正常工作,并且我的广播接收器中的onReceive方法被调用。
./adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n
mypackage/mypackage.receiver.CampaignBroadcastReceiver --es "referrer"
"utm_source%3Dtest%26utm_medium%3Dbanner%26utm_term%3Dmailstuff"
但是,当我尝试从PlayStore
进行时,就没有任何调用。
有人有什么想法如何在应用程序中获取来自PlayStore
的推广参数吗?