android 開機直接運行app並當做手機桌面

android 開機直接運行app並當做手機桌面

直接上代碼:

1.開機啓動APP

1.1 寫一個廣播接收器,用來接收手機開機廣播

public class Receiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

        Log.i("broadCastReceiver","onReceiver...");
         
        Intent mBootIntent = new Intent(context, MainActivity.class);
        // 必須設置FLAG_ACTIVITY_NEW_TASK
        mBootIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(mBootIntent);
         
    }

}`

1.2 manifest中靜態註冊廣播接收器

    <!--開機廣播接受者-->
    <receiver android:name=".Receiver">
        <intent-filter>
            <!--註冊開機廣播地址-->
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
        </intent-filter>
    </receiver>

2.開機直接運行app,並把app主頁面當成手機桌面

備註: 上面1中提到的,會在手機開機之後先顯示系統桌面,過一會才能啓動app,下面要提到的是開機直接把app Launcher頁面當成手機桌面,完成一開機就直接啓動app,不需要等待。

 <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER"/>
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.MONKEY"/>
        </intent-filter>
    </activity>

manifest中將主activity設置成上述樣子

這個時候1中註冊的廣播接收器其實可以不要了,可能與手機還會有關係,留與不留都可以試試。

(很多人到這裏就以爲可以了,結果重啓手機發現還是不行,看下面)

到這裏,離成功只差關鍵一步,就是你需要在手機設置中找到 桌面設置 選項,找不到的可以在設置中的搜索欄搜一下,找到後你會發現桌面設置這裏多了一個選項,就是你的這個app,因爲加了 <category android:name="android.intent.category.HOME" />這一行,桌面設置也會把你的app當成一個桌面主題,還有一個選項是系統桌面,你需要設置成自己的app,重啓手機,ok!

(我測試了華爲5.1華爲7.0和小米5.2三部手機,均能找到桌面設置這個選項)
如果找不到桌面設置選項,可以從手機設置–應用程序-查看所有應用程序(包括系統的應用程序),找到桌面程序之類的字眼的應用,清楚其默認設置。清除之後回到APP,按回主頁面的時候應該會有類似選擇默認桌面的設置項。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章