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.Action())) {
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);
}
}
}
在l⽂件中设置权限和注册⼴播:
<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用法</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命令测试⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论