LoginSignup
4
4

More than 5 years have passed since last update.

端末に新規アプリがインストールされたらログを吐く

Last updated at Posted at 2014-12-22

数年前にメールクライアントアプリとか、SNSアプリで課金処理を作成したときに、
ServiceやBroadcastReceiverを使ったんだけど、
ほとんど覚えていないので、 BroadcastReceiver の超簡単なサンプルを作成したのでメモを残す。

結論

こいつを設定すればok
他にも Standard Broadcast Actions って分類で、色々と種類があって、端末起動時にアプリ起動とかもできるぽい。

今回のサンプルソースはgithubに置きましたココ

もう少し解説してみる

AndroidManifest.xmlに書いてみたんだけど、下記に該当部分のみ抜粋した。

の定義をみていて、 android:exported をfalseで追加することにした。こいつを設定することにより BroadcastReceiverを無効化しておく。必要になったタイミングで起動すれば良いわけだし。

AndroidManifest.xml
<receiver
  android:name=".receivers.AppInstalledObserveReceiver"
  android:exported="false"
  android:process=":remote">
  <intent-filter>
    <action android:name="android.intent.action.PACKAGE_ADDED" />
    <data android:scheme="package" />
  </intent-filter>
</receiver>

ちなみに、android:process=":remote"と書くとアプリと別プロセスで起動する。
ココとかココを見る限り、生成したreceiverはonReeceiverしている間のみで、フォアグラウンドプロセスで起動している。
たぶん、この中でService以外の非同期処理を実行しても、想定と異なるタイミングでプロセスが終了すると思うので注意が必要ぽい。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4