开机自动启动程序主界面研究

如果不对Android系统进行订制,只用SDK提供的功能达到开机启动App主界面的目的在理论上是可行的,因为许多应用都实现了开机自动启动后台Service的功能,同理开机启动Activity可以采用同样的方式。
原理就是系统开机后会发送一个开机广播,程序利用BroadcastReceiver捕捉该广播后再打开主界面。
具体实现方法:

一、实现自定义BroadcastReceiver捕捉开机广播
public class BootReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
Intent intentMain = new Intent(context, MainActivity.class);
intentMain.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intentMain);
}
}
}

二、在AndroidManifest中注册该广播接收器
<receiver android:name="com.xxx.main.BootReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>


三、在AndroidManifest中设置权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />


可以看出相当简单, 是不是这样写好后一定能行呢,我用小米2S进行了测试,发现不行,因为小米手机有一个自启动应用授权管理,经系统授权后才能得到自动启动的权限:
[img]http://dl2.iteye.com/upload/attachment/0105/4237/b232a0dd-2d70-3b00-812a-33fc35d3036e.png[/img]
手动添加自启动应用即可。

设置后再进行测试发现能实现自动启动该App应用主界面,但是效果与目标有一些差距。
因为手机启动后第一个打开的是锁屏界面,锁屏界面显示时,后台第二步会加载系统桌面,最后才会打开自启动应用,等于说用户需要手动解锁,如果桌面还未加载完成,首先看到的是系统桌面,如果已加载完,则会看到的是自启动应用界面。
如何去掉锁界面,网上也给出了答案,需要修改系统源码,所以完全实现体验比较好的开机自启动功能,修改源码是不可少的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值