`
danlov
  • 浏览: 28263 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

 
阅读更多
         如果不对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进行了测试,发现不行,因为小米手机有一个自启动应用授权管理,经系统授权后才能得到自动启动的权限:

     手动添加自启动应用即可。

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

    
  • 大小: 107.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics