1. 程式人生 > >Android 開機直接執行app並當做手機桌面的例項

Android 開機直接執行app並當做手機桌面的例項

1.開機啟動APP

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

`public class Receiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

Log.e("broadCastReceiver"

,"onReceiver...");

try {

Intent mBootIntent = new Intent(context, MainActivity.class);

// 下面這句話必須加上才能開機自動執行app的介面

mBootIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(mBootIntent);

} catch (Exception e) {

e.printStackTrace();

}

}

}`

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

?

1

2

3

4

5

6

7

<!--開機廣播接受者-->

<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,不需要等待。

?

1

2

3

4

5

6

7

8

9

<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,按回主頁面的時候應該會有類似選擇預設桌面的設定項。

如果解決了你的問題,請點贊多多支援吧!