開機自動啟動app的實現(xiàn)是比較簡單的,監(jiān)聽一個開機廣播即可。當(dāng)監(jiān)聽到開機廣播后打開想要啟動的app即可,具體實現(xiàn)如下:
1. 創(chuàng)建廣播接收器:BootBroadcastReceiver。
package cn.studyou.autoopenapp;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
/**
* 基本功能:開機自動啟動APP
* 創(chuàng)建:王杰
* 創(chuàng)建時間:16/7/22
* 郵箱:w489657152@gmail.com
*/
public class BootBroadcastReceiver extends BroadcastReceiver {
static final String ACTION = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION)) {
final Intent mainActivityIntent = new Intent(context, MainActivity.class); // 要啟動的Activity
mainActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
final Context mContext = context;
new Handler().postDelayed(new Runnable(){
public void run() {
mContext.startActivity(mainActivityIntent);
}
}, 10000);
}
}
}
2. 在application聲明Receiver。
<receiver android:name=".BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
3. 聲明權(quán)限。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
4. 特殊說明:
1) Apk需要設(shè)置默認(rèn)安裝到手機內(nèi)存,外設(shè)SD卡是接收不到開機廣播,這里只針對安裝位置為手機內(nèi)存的app。
2)小米手機收不到開機廣播的處理辦法:系統(tǒng)與安全文件夾--->安全中心--->授權(quán)管理--->自啟動管理--->對本App添加自啟動授權(quán)