2014年8月19日 星期二

[Android] 開機自動啟動APP/ 疑難雜症解答

在Android 系統裡面,要讓你的app在開機時候就啟動必須有兩個要件

1)BroadCastReceiver--這個東西是用來接收,android手機開機時會丟出的訊息(android.intent.action.BOOT_COMPLETED)

2)開權限--沒有路,怎麼走過去呢?
要在AndroidManiFest.xml增加權限,才能夠接收BOOT_COMPLETED

首先,先建立一支java class(在同一個類別下喔!)
像這樣

package com.example.thread_example;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class BootAct extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Intent boot = new Intent(context,MainActivity.class);
                boot.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(boot);
}

}

這邊需要extends BroadcastReceiver 然後我們要改寫onReceive的內容,記得new Intent裡面是你要開啟的class名稱喔(這邊容易搞錯),然後使用startActivity來啟動。

權限的部分則是



綠色部分為所需要添加的程式碼,紅色部分則是要特別注意---名稱不要搞錯,像我是設為BootAct,搞錯就會出現Permission Denial: starting Intent .....這樣的錯誤。


OK,重新開機吧! 相信他重開之後就會開啟你的APP了。