Android APP開(kāi)機(jī)自啟動(dòng)基本方法

前言

應(yīng)用自啟動(dòng)主要是通過(guò)接收系統(tǒng)廣播BOOT_COMPLETED來(lái)實(shí)現(xiàn)的,在receiver中執(zhí)行APP啟動(dòng)的方法。

實(shí)現(xiàn)

主要分為兩個(gè)部分:

  1. AndroidManifest.xml配置,包括權(quán)限配置和廣播注冊(cè)。
  2. 廣播中添加應(yīng)用啟動(dòng)的代碼。

1. 權(quán)限添加

AndroidManifest.xml文件中添加BOOT監(jiān)聽(tīng)權(quán)限:

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

2. 安裝方式配置

manifest根目錄下設(shè)置為安裝方式:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    android:installLocation="internalOnly">

設(shè)置為將應(yīng)用安裝到內(nèi)部存儲(chǔ)中,安裝在SD卡中可能會(huì)導(dǎo)致自啟動(dòng)失敗。

3. 廣播注冊(cè)

AndroidManifest.xml文件中注冊(cè)廣播:

        <receiver
            android:name=".receiver.BootReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

4. receiver中添加應(yīng)用啟動(dòng)邏輯

示例代碼如下:

class BootReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        if (intent == null) return
        if (TextUtils.equals(intent.action, "android.intent.action.BOOT_COMPLETED")) {
            val newIntent = Intent(context, MainActivity::class.java)
            ContextCompat.startActivity(context, newIntent, null)
        }
    }
}

設(shè)置一下應(yīng)用啟動(dòng)邏輯。

5. 問(wèn)題說(shuō)明

在執(zhí)行如上步驟之后,在模擬器運(yùn)行已經(jīng)可以啟動(dòng)后應(yīng)用重啟。
但是在手機(jī)上測(cè)試可以會(huì)無(wú)法啟動(dòng),原因是手機(jī)上可能安裝有手機(jī)管家之類的軟件。需要在其中將當(dāng)前應(yīng)用的自啟動(dòng)選項(xiàng)打開(kāi)才能生效。

總結(jié)

Android開(kāi)機(jī)自啟動(dòng)示例

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容