Broadcastをエミュレートする
Android、やっぱりなんでもできるなぁと。開発段階でもいろいろできるように作られてるなぁと実感した。
やりたいこと
Broadcastする
コマンドラインから、adbを使う。
INSTALL_REFERRERであれば、
adb shell am broadcast -a com.android.vending.INSTALL_REFERRER
となる。
通常、INSTALL_REFERRERは、Extra Stringを保持しているので、
adb shell am broadcast -a com.android.vending.INSTALL_REFERRER --es <extra-key> <extra-string-value>
アプリ側の用意
アプリ側ではBroadcastReceiverを継承したクラスを作り、onReceiveをOverrideする
ちなみに、com.android.vendingから取得したい Extra String のキーは、"referrer"
package hoge.fuga; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class HogeFugaReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String referrer = intent.getExtras().getString("referrer"); Log.i("hogefuga", "referrer: " + referrer); } }
で、
上記のBroadcastReceiverをエミュレーターでも実機でもいいから、adbが接続できるものにinstall
adbから、コマンド一発
adb shell am broadcast -a com.android.vending.INSTALL_REFERRER --es referrer hoge
あとは、logcatを確認するだけ。