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及以前版本:设置 > 常规 > 更多 > 定时开关机; 当手机设置时间后,到达指定时间,手机即可自动开机关机。