アプリがマーケットからインストールされた後に Android によって起動された「com.android.vending.INSTALL_REFERRER」インテントをキャッチするブロードキャスト レシーバーを登録しようとしています。
ここで詳細に従っています:http://code.google.com/mobile/analytics/docs/android/#referrals
ただし、Google アナリティクスを使用できないため、独自のソリューションを作成しました。マニフェスト ファイルに以下を追加しました。
<receiver android:name="com.test.Receiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
基本的な BroadcastReceiver クラスを作成しました。
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String referrerString = extras.getString("referrer");
Log.w("TEST", "Referrer is: " + referrerString);
}
}
ただし、アプリがインストールされている場合、レシーバーはインテントをキャッチしていないようで (インテントがブロードキャストされている場合でも?)、ログ出力が得られません。
どこかで間違っているのでしょうか、それともアプリのインストール時にマーケットがこれらのインテントを起動しなくなったのでしょうか?