要点
- 使用Launcher保活
- 简单Launcher开发
- 在手机中找到Launcher设置
为什么要用Launcher保活
先说一下为什么要保活吧,低频进出的门卫防止有人无序进出时,完全靠人工看住几个门和栏杆,但是他们的事情非常繁杂又不能完全只去看门,就有人想办法说能开门提醒或者触动栏杆提醒就好了。基于这个需求就用安卓开发了一个基于声音、震动的提醒软件,能够在门或者栏杆触动的时候发出提示。但是如果软件不能一直运行的话就没有意义了。由于不同厂家的安卓手机对后台程序、锁定的程序、前台服务等常规的常驻内存等方式处理的不同,短时间内开发出保活功能比较吃力,于是想到了这个法子。
简单Launcher的开发
基础代码
先在AndroidManifest.xml加上:
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
完整的样子:
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
好了,一个Launcher就好了,下一步只要处理返回键的控制、设置为默认主界面,再加一个退出就行了。
返回键控制
在MainActivity中增加如下代码拦截安卓的退出键:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;//不执行父类点击事件,拦截返回键
}
return super.onKeyDown(keyCode, event);
}
设置默认主界面
在安卓工控机中,可以使用供应商APK自动设置,安卓7.0以下也可以用反射的方法自动设定。而一般的手机只能依赖手机提供的功能,例如安装标注为Launcher的APP后,会自动提示是否选择为主界面,只要选择了刚刚开发的这个程序、并且选项为“始终”就好。 但是实际使用过程中发现有的手机没有这个功能,甚至在整个手机的设置中都找不到,应该是厂商定制代码的过程中屏蔽掉了,好在这个功能没有删除,只是不显示而已。所以重点就是找出这个功能,用APP跳转到这里来,也可以像我一样简单、快速的使用adb命令将设置界面打开(前提是拿到用户手机^_^):
adb shell am start com.android.settings/com.android.settings.ActivityPicker
结束语
其实还有很多事情需要需要处理,例如在主界面增加密码保护的退出功能、软件的设置等就是一些常规的功能开发,就不一一介绍了。