くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Androidで端末起動時にあれこれする方法

アラームとか常駐アプリとか端末起動時にあれこれしたかった

素敵な記事があったので、自己理解のための備忘録

qiita.com

基本的に

ブロードキャストされるandroid.intent.action.BOOT_COMPLETEDを処理する感じらしい

やることは3つ

  1. ブロードキャストを受け取るRecevierクラスを作る
  2. AndroidManifest.xmlにpermissionを追加する
  3. AndroidManifest.xmlにRecevierを追加する

1. Recevierを作る

Recevierクラスはとってもシンプル

public class StartupReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
    // ここに起動時の処理を書く
  }
}

これだけ。

あとはコメントの部分に

アプリを起動したり、Serviceを起動したり、AlarmManagerに登録したりする処理を書けばOK

2. AndroidManifest.xmlにpermissionを追加する

わすれやすいけど重要なこの一行

<manifest>
  <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
 ・・・
</manifest>

3. AndroidManifest.xmlにRecevierを追加する

こちらは、activityやserviceを追加するのと同じような感じで

<manifest>
  ・・・
  <application>
    ・・・
    <receiver android:name=".StartupReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </receiver>
  </application>
</manifest>

adbから再起動をして確認する

なんと再起動しなくても、adbからBOOT_COMPLETEDを発生できるらしい!

すごいなadb

$ adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

9ensan.com

以上!!