【Android智能硬件开发】【001】APK自启动
前言智能硬件不同于普通安卓手机,由于部署在工地现场,大多不会有专人维护所以必须具备开机自启动、远程自动升级、自动重启、状态自动上报等功能这篇博客,我们首先解决最简单的,开机自启动问题注册权限<!-- 监听系统开机广播 --><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
·
前言
智能硬件不同于普通安卓手机,由于部署在工地现场,大多不会有专人维护
所以必须具备开机自启动、远程自动升级、自动重启、状态自动上报等功能
这篇博客,我们首先解决最简单的,开机自启动问题
注册权限
<!-- 监听系统开机广播 -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
创建广播接收器
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
注册广播接收器
<!-- 监听系统开机 -->
<receiver android:name="com.android.app.hardware.biz_receiver.BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
广播接收器执行任务
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
Intent it = new Intent(context, SplashActivity.class);
it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(it);
}
}
将应用安装到内存卡
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="internalOnly">
</manifest>
注意事项
现在很多ROM镜像,都拦截了RECEIVE_BOOT_COMPLETED等广播
对于这种设备,除非能自己修改ROM,否则监听开机广播肯定不可能的了
这时就不要再浪费时间了,可以采用将APP设为桌面的方法来间接达到目的
还有一些厂商,需要自己设置允许开机自启动,加入启动白名单,才能收到该广播
将APP设置为桌面应用
这是一个投机取巧的方法
缺点就是,我们的应用会取代默认桌面,就没法切换到其它APP了,只能通过代码打开其它应用
但对于比较简单的智能硬件来说,有一个应用就够了
<activity
android:name="com.android.app.hardware.biz_activity.SplashActivity"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.MONKEY" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
更多推荐
已为社区贡献6条内容
所有评论(0)