Android初探開機引導(dǎo)

因為需求有做開機引導(dǎo)冀宴,所以簡單的學(xué)習(xí)下這塊功能的流程,并簡單的做個總結(jié)

主要參考文章:
http://www.reibang.com/p/d2951f6fb2a8
https://blog.csdn.net/ansondroider/article/details/103297638

做開機引導(dǎo)温学,主要要做到的效果就是只有第一次使用的時候會打開略贮,只打開一次,當(dāng)執(zhí)行完開機引導(dǎo)的流程之后仗岖,之后開機都不會再展示

要實現(xiàn)開機引導(dǎo)逃延,那么就一定是系統(tǒng)應(yīng)用,按照原理來說轧拄,需要兩個步驟真友,第一,需要引導(dǎo)頁的優(yōu)先級比LAUNCHER高紧帕。第二盔然,需要流程完畢之后執(zhí)行某些操作讓應(yīng)用下次不會啟動桅打。

1. 設(shè)置應(yīng)用的優(yōu)先級

可以設(shè)置android:priority屬性,系統(tǒng)會判斷啟動priority優(yōu)先級高的愈案。

        <activity android:name=".ProvisionedActivity">
            <intent-filter android:priority="1">
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.COMMON_HOME" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

這樣配置之后挺尾,其它應(yīng)用的優(yōu)先級如果沒有設(shè)置的話默認就是0,這樣就會優(yōu)先打開引導(dǎo)頁站绪。

2. 引導(dǎo)頁只開啟一次

自己可以在引導(dǎo)頁中寫自己想要做的邏輯遭铺。當(dāng)執(zhí)行完所有邏輯之后,需要配置

        // Add a persistent setting to allow other apps to know the device has been provisioned.
        Settings.Global.putInt(contentResolver, Settings.Global.DEVICE_PROVISIONED, 1)
        Settings.Secure.putInt(contentResolver, Settings.Secure.USER_SETUP_COMPLETE, 1)
        // remove this activity from the package manager.
        PackageManager pm = context.getPackageManager();
        ComponentName componentName = new ComponentName(packageName, activityName);
        pm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);

這里主要做了設(shè)置Settings.Global.DEVICE_PROVISIONED和Settings.Secure.USER_SETUP_COMPLETE兩個參數(shù)恢准,還有PackageManager.setComponentEnabledSetting方法禁用組件

第一個參數(shù)是組件名
第二個參數(shù)是狀態(tài)
不可用狀態(tài):COMPONENT_ENABLED_STATE_DISABLED
可用狀態(tài):COMPONENT_ENABLED_STATE_ENABLED
默認狀態(tài):COMPONENT_ENABLED_STATE_DEFAULT
第三個參數(shù)flags
DONT_KILL_APP或者0魂挂,0表示殺死包含該組件的app

3. 使用過程中出現(xiàn)的問題

(1)priority設(shè)置無效

運行時會發(fā)現(xiàn)設(shè)置priority優(yōu)先級比LAUNCHER高,在開機之后也會提示讓你選擇打開應(yīng)用馁筐,而不是默認打開優(yōu)先級高的涂召,關(guān)于這個問題,可以參考這篇文章
https://blog.csdn.net/ansondroider/article/details/103297638
只需要把應(yīng)用安裝到system/priv-app中敏沉,就能解決這個問題果正。正常來說一般系統(tǒng)應(yīng)用也是安裝在這么文件夾中,只是平時調(diào)試的時候會為了方便直接run盟迟,所以可能出現(xiàn)這個問題秋泳。
將應(yīng)用安裝到該文件夾中可以使用這個命令,然后重啟

adb push xxx.apk /system/priv-app
(2)不設(shè)置Settings.Global.DEVICE_PROVISIONED和Settings.Secure.USER_SETUP_COMPLETE

看了很多文章攒菠,都沒有講到為什么要設(shè)置這兩屬性迫皱,因為要達成目的,我們只需要設(shè)置priority和調(diào)用setComponentEnabledSetting方法就行辖众,為什么要設(shè)置這兩個參數(shù)舍杜?不設(shè)置會有什么影響。
其實簡單來說赵辕,系統(tǒng)在其他地方有用到這兩個參數(shù)既绩,舉個簡單的例子,我直接

        Settings.Global.putInt(contentResolver, Settings.Global.DEVICE_PROVISIONED, 0)
        Settings.Secure.putInt(contentResolver, Settings.Secure.USER_SETUP_COMPLETE, 0)

去運行程序还惠,能夠很明顯的測出這種情況下按Home鍵沒反應(yīng)饲握,除此之外屏保也會不顯示。
所以這兩個參數(shù)還是需要在這個地方設(shè)為1的蚕键。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末救欧,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子锣光,更是在濱河造成了極大的恐慌笆怠,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件誊爹,死亡現(xiàn)場離奇詭異蹬刷,居然都是意外死亡瓢捉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門办成,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泡态,“玉大人,你說我怎么就攤上這事迂卢∧诚遥” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵而克,是天一觀的道長靶壮。 經(jīng)常有香客問我,道長员萍,這世上最難降的妖魔是什么腾降? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮充活,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蜡娶。我一直安慰自己混卵,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布窖张。 她就那樣靜靜地躺著幕随,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宿接。 梳的紋絲不亂的頭發(fā)上赘淮,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音睦霎,去河邊找鬼梢卸。 笑死,一個胖子當(dāng)著我的面吹牛副女,可吹牛的內(nèi)容都是我干的蛤高。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碑幅,長吁一口氣:“原來是場噩夢啊……” “哼戴陡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沟涨,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤恤批,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后裹赴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體喜庞,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡诀浪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赋荆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笋妥。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窄潭,靈堂內(nèi)的尸體忽然破棺而出春宣,到底是詐尸還是另有隱情,我是刑警寧澤嫉你,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布月帝,位于F島的核電站,受9級特大地震影響幽污,放射性物質(zhì)發(fā)生泄漏嚷辅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一距误、第九天 我趴在偏房一處隱蔽的房頂上張望簸搞。 院中可真熱鬧,春花似錦准潭、人聲如沸趁俊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寺擂。三九已至,卻和暖如春泼掠,著一層夾襖步出監(jiān)牢的瞬間怔软,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工择镇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挡逼,地道東北人。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓腻豌,卻偏偏與公主長得像挚瘟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子饲梭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容