我最初问了这个问题,关于在安装时通过市场链接将参数传递到我的应用程序中。
似乎每个人都在说BroadcastListener
用 的intent-filter
动作来创造一个com.android.vending.INSTALL_REFERRER
。上面的所有文档似乎都暗示这是 Google Analytics 的一项功能(文档在 v1 中,但我现在只能下载 v2 SDK ......所以这就是我正在使用的)。我无法让这些链接传递数据。我有我的完整清单和我的广播听众。我已经包含了谷歌分析,以防万一这是一个要求。
它根本不起作用。我的广播监听器永远不会被调用,日志中不会打印任何内容。帮助!
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");
}
}
}