Android 利用launcher(安卓系统UI桌面)实现开机自启动App

背景

前段时间有这样一个需求,做一个安卓系统的小型服务器,使用的开发板是萤火虫的7.0.1系统,并且已经root了,网上有很多利用广播,通过监听开机广播的方式来,实现App的开机自启动,这个方法不做考虑,因为我就没有成功过。采用另一种方式来实现这个需求,也就是launcher。

什么是launcher

对于初级开发者来说launcher可能还有些陌生,它俗称“HomeScreen”也就是我们开机后看到的第一个App(其实也就是系统的桌面)。launcher其实就是一个app,它的作用用来显示和管理手机上其他App。目前市场上有很多第三方的launcher应用,比如“小米桌面”、“91桌面”等等。那我们就利用launcher来实现开机自启动App的需求吧。

开机自启动App开发

其实实现的方式非常的简单,我们只需要在我们的AndroidManifest中添加上两行代码即可。

<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />

也就是这样,

<application
        ...>
    <activity
        ...>
        <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" />
         </intent-filter>
     </activity>
</application>

这样我们的需求就完成了,是不是很简单,在安装完成后重新启动我们的设备,系统就会让我们选择要打开系统的launcher还是我们自己的launcher。
这里写图片描述
选择始终以后每次开机就会启动自己的launcher APP,这样做是简单,但弊端是:用户如果卸载了这个APP或恢复出厂设置以后,那么就会启用系统的 launcher 。做不到防止修改的作用。但是我的需求是,不需要界面,也就是用户是不能对开发板就行安装和卸载的,所以在这里是比较适用的。

进一步的完善

怎么对我们的App做进一步的完善呢,一山不容二虎,当然是删除系统的launcher了,这样就可以做到比较完善的地步啦。

删除launcher的方式

  1. 第一种方式的话比较简单一些,就是将设备进行root操作,获取到root权限之后将系统的launcher进行卸载操作,弊端是,用户获取到root权限之后可以随意卸载App,包括咱们自己写的launcher,所以root有风险,一定要慎用啊。
  2. 第二种就是修改Android系统的源码,删除与系统launcher相关的文件。

如果有什么扩展的需求或者我有什么遗失和错误欢迎评论,我会第一时间回复和更新。

猜你喜欢

转载自blog.csdn.net/qq_38001118/article/details/80675646
今日推荐