android开机自启动APP及使用adb命令测试方法
android开机自动运行APP实现方式其实很简单。在android系统运行时,会发出“android.intent.action.BOOT_COMPLETED”这个系统广播,因此我们监听它,并进行打开APP的操作即可。现在大多数的android手机系统都默认禁止第三方安装的APP开机自启动,只有系统APP(system/app)才默认有这个权限,所以一般都需要去安全中心或者手机管家中去设置为允许。这里说个题外话,手机软件除非特殊情况,不然最好不要做开机自启动,开机自启动一般适用于android系统的终端机上,开机即运行相应的项目,该机器上也只有这个项目,下面上代码。
新建一个类AutoStartBroadcastReceiver集成自BroadcastReceiver:
public class AutoStartBroadcastReceiver extends BroadcastReceiver {
private static final String ACTION = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
//开机启动
if (ACTION.equals(intent.getAction())) {
Intent mainIntent = new Intent(context, MainActivity.class);//MainActivity.calss为你要打开的界面,如果没有界面就可以用service代替
// 在BroadcastReceiver中显示Activity,必须要设置FLAG_ACTIVITY_NEW_TASK标志
mainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(mainIntent);
}
}
}
在AndroidManifest.xml文件中设置权限和注册广播:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name=".AutoStartBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
如此,代码部分就完成,可以进行测试了!我在android7.0的模拟器和Android6.0的真机(魅族)上都测试过,实现的预期的功能。
下面提供两个通过adb发送“BOOT_COMPLETED”系统广播的命令:
1、adb shell am broadcast -a android.intent.action.BOOT_COMPLETED
adb发送系统广播至android设备
2、adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n component
adb发送系统广播至android设备指定的组件中,-n后面接的是你指定项目所需接收广播的类的全路径,而并非大多网上所说的packagename,比如我项目中即为:”com.android.qrcode/.AutoStartBroadcastReceiver”
以上两个命令也都是亲测有效的!
这篇android开机自启动APP及使用adb命令测试方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Android PreferenceActivity与PreferenceFragment详解及简单实例
这篇文章主要介绍了Android PreferenceActivity与PreferenceFragment详解及简单实例的相关资料,需要的朋友可以参考下2016-12-12
Android开发之关闭和打开Speaker(扬声器)的方法
这篇文章主要介绍了Android开发之关闭和打开Speaker(扬声器)的方法,结合实例形式简单分析了Android扬声器的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下2016-03-03
加载页面遮挡耗时操作任务页面--第三方开源之AndroidProgressLayout
AndroidProgressLayout实现为界面添加圆形进度条。调用setprogress()方法显示和隐藏进度条,这篇文章主要介绍了加载页面遮挡耗时操作任务页面--第三方开源之AndroidProgressLayout的相关资料,需要的朋友可以参考下2015-11-11


最新评论