我最初发布了这个问题,询问如何通过安装链接将参数传递到我的应用中。
大家都建议创建一个带有 intent-filter
为com.android.vending.INSTALL_REFERRER
的BroadcastListener
。所有相关文档似乎都暗示这是Google Analytics的一个功能(文档是v1版本,但我现在只能下载v2 SDK ...所以我正在使用它)。我无法通过这些链接传递数据。我已经包含了我的完整清单和广播侦听器。我还包括了Google Analytics,以防万一那是必需的。
- Google Analytics 参考资料
- 从这里生成到市场的链接:此处
- 商店中我的应用程序的链接
- 商店中带有参数的链接 此链接
完全不起作用。我的广播侦听器从来没有被调用过,日志中也没有任何输出。求助!
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.robotsidekick.webbrowser"
android:versionCode="4"
android:versionName="4.0">
<uses-sdk android:minSdkVersion="17"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:label="@string/app_name"
android:icon="@drawable/ic_launcher">
<activity
android:name="WebBrowser"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<receiver
android:exported="true"
android:name="com.robotsidekick.webbrowser.InstallReceiver">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
</application>
</manifest>
广播监听器
public class InstallReceiver extends BroadcastReceiver
{
private static final String TAG = "InstallReceiver";
public void onReceive(Context context, Intent intent)
{
Log.e(TAG, "Context: " + context);
Bundle extras = intent.getExtras();
if (extras != null)
{
Log.e(TAG, "Extras:");
for (String keys : extras.keySet())
{
Log.e(TAG, keys + " -> " + extras.get(keys));
}
}
else
{
Log.e(TAG, "Extras are null");
}
}
}
InstallReceiver
更改为扩展com.google.analytics.tracking.android.AnalyticsReceiver
,然后一切都神奇地解决了。老实说,我无法解释这个现象。 - xbakesx