システム起動時にアプリケーションを起動する

Windowsでいうところのスタートアップのように、Androidのシステム起動時にアプリケーションを起動するにはBOOT_COMPLETEDというインテントを使うと実現できます。手順は以下のとおり。

BOOT_COMPLETEDを受けるBroadCastReceiverをつくる

onReceive内でActivityを起動します。新たにアプリケーションを起動するので、NEW_TASKフラグが必要です。

public class MyReceiver extends BroadcastReceiver {  
    @Override  
    public void onReceive(Context context, Intent intent) {  
        Intent i = new Intent(context, Main.class); 
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(i);
    }  
}
ReceiverをManifestで定義する

BOOT_COMPLETEDを受けるためのフィルターと、パーミッションが必要です。

        <receiver android:name=".MyReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
                 <category android:name="android.intent.category.DEFAULT" />  
            </intent-filter>  
        </receiver>

ソースコードgithubに置いてあります。
http://github.com/itog/StartupSample

以上です。