A. android 設置開機自啟動
前段時間在做智能機器人等定製android系統開發的應用,因為機器人定製應用,需要在系統啟動的時候就運行程序,不需要展示系統桌面,這里需要用到系統開機應用自啟動,也就是常說的開機自啟動。
記錄一下實現流程:
在AndroidManifest.xml文件中配置監聽啟動許可權
新建一個監聽廣播接收者BootReceiver
安裝app到手機上,然後啟動一次程序(據說安卓4.0以後,必須先啟動一次程序才能接收到開機完成的廣播,目的是防止惡意程序)
如果按照上面的全部步驟後操作後,重啟沒有自動啟動程序,怎麼辦呢?是怎麼回事呢?
如果還是失敗,那麼請檢查你的手機是不是設置了app安裝首選位置是sd卡,據說安裝到sd卡的話,因為手機啟動成功後(發送了啟動完成的廣播後)才載入sd卡,所以app接收不到廣播。如果是的話,把app安裝到內部存儲試試。如果不懂得設置的話,那麼直接在AndroidManifest.xml文件中設置安裝路徑,在manifest的根節點中加入 android:installLocation="internalOnly" 。如下:
B. Android開發之設置開機自動啟動的幾種方法
程序源代碼如下:
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++)/*以下為三重循環*/
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k) /*確保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k);
}
}
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d",bonus);
}
C. Android App 開機自啟動
<article class="_2rhmJa">
Android 設備開機自啟動的可以用廣播實現,因為 Android 設備開機時會發送一條開機廣播 "android.intent.action.BOOT_COMPLETED"。接收後實現啟動就完成了。
接下來是准備工作
如果按照上面的全部步驟後操作後,重啟沒有自動啟動程序,怎麼辦呢?是怎麼回事呢?
*那麼首先請檢查一下你的手機是不是安裝了360等安全助手之類的軟體,如果有,請在軟體的自啟動軟體管理中將app設置為允許
*我的手機沒有安裝這些軟體,但是手機中自帶了安全助手,有的手機系統設置裡面自帶了自啟動軟體管理的功能 ,所以在這里將我們的app設置為允許開機啟動),重啟手機,測試是否成功。
然而並沒有成功
接收不到BOOT_COMPLETED廣播可能的原因
(1)、BOOT_COMPLETED對應的action和uses-permission沒有一起添加
(2)、應用安裝到了sd卡內,安裝在sd卡內的應用是收不到BOOT_COMPLETED廣播的
(3)、系統開啟了Fast Boot模式,這種模式下系統啟動並不會發送BOOT_COMPLETED廣播
(4)、應用程序安裝後重來沒有啟動過,這種情況下應用程序接收不到任何廣播,包括BOOT_COMPLETED、ACTION_PACKAGE_ADDED、CONNECTIVITY_ACTION等等。
Android3.1之後,系統為了加強了安全性控制,應用程序安裝後或是(設置)應用管理中被強制關閉後處於stopped狀態,在這種狀態下接收不到任何廣播,除非廣播帶有FLAG_INCLUDE_STOPPED_PACKAGES標志,而默認所有系統廣播都是FLAG_EXCLUDE_STOPPED_PACKAGES的,所以就沒法通過系統廣播自啟動了。所以Android3.1之後
(1)、應用程序無法在安裝後自己啟動
(2)、沒有ui的程序必須通過其他應用激活才能啟動,如它的Activity、Service、Content Provider被其他應用調用。
存在一種例外,就是應用程序被adb push you.apk /system/app/下是會自動啟動的,不處於stopped狀態。
並不太懂 我的APP啟動後 已經收到廣播
第一種方式 我再模擬器上 測試 可以 android 9.0版本
桌面設置也會把你的app當成一個桌面主題,還有一個選項是系統桌面,你需要設置成自己的app
如果找不到桌面設置選項,可以從手機設置–應用程序-查看所有應用程序(包括系統的應用程序),找到桌面程序之類的字眼的應用,清楚其默認設置。
D. 怎麼設置安卓手機自動開關機
若您使用的是OPPO手機,可以參考以下方法操作:
1. ColorOS 13及以後版本:設置>其他設置弊肆>定時開關機;
2. ColorOS 12-12.1: 設置>系統設置>定時開關機;
3. ColorOS 3.2-11.3版本:設置 > 其他設置 > 定跡卜枝時開關機;
4. ColorOS 3.0-3.1版本:設置 > 其他設置 > 定姿敏時開關機(若無此按鈕則說明不支持);
5. ColorOS 2.1及以前版本:設置 > 常規 > 更多 > 定時開關機; 當手機設置時間後,到達指定時間,手機即可自動開機關機。