当前位置:   article > 正文

Android自启动整理_adb设置终端自动开机

adb设置终端自动开机
Android开机自启动APP设置

带有自启动广播的APP (低版本(5.0以下),模拟器,定制系统)

1.预植入系统目录

/system/app/应用目录/my.apk

系统启动就会启动应用

2.普通安装

​ 第一次 系统启动不会启动应用 ,打开应用

​ 第二次 就会自启动

关于sharedUserId:
通过Shared User id,拥有同一个User id的多个APK可以配置成运行在同一个进程中。
那么把程序的UID配成android.uid.system,也就是要让程序运行在系统进程中,
这样就 有权限来修改相关系统设置了,比如系统时间
  • 1
  • 2
  • 3
Code
  
  
 在 AndroidManifest.xml中
 <!--开机启动-->
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
 
  
  <application
     /// 可选
   android:sharedUserId="android.uid.system">
  
  <!--启动监听广播-->
        <receiver android:name=".receiver.BootBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>
    </application>    
        
   public class BootBroadcastReceiver extends BroadcastReceiver {
    public static final String TAG BootBroadcastReceiver.class.getSimpleName();
    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
            Logger.d(TAG,"Action=="+intent.getAction());
            restartApplication(context);
        }
    }
}    

    /**
     * 重启应用
     * @param context
     */
    public static void restartApplication(Context context) {
        final Intent intent =   context.getPackageManager().
        getLaunchIntentForPackage(context.getPackageName());
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        context.startActivity(intent);
        android.os.Process.killProcess(android.os.Process.myPid());
    }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

adb发送BOOT_COMPLETED
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

命令发送BOOT_COMPLETED广播,而不用重启测试机或模拟器来测试BOOT_COMPLETED广播,
这条命令可以更精确的发送到某个package,如下:
adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c 
android.intent.category.HOME -n package_name/class_name
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在Android5.0以上手机需要用户手动开启自启动权限

Note:在高版本手机上不建议设置开机自启动

一台HuaWei P30 上收不到启动广播(设置自启动管理也无效);

普通安装
.so库放在 data/app/lib 下

预植入系统
.so库放在system/lib下

参考:Android如何通过shareduserid获取系统权限

Android针对高版本实现开机自启动时无法监听BOOT_COMPLETED的处理方法

android应用开机自启动及失败原因(BOOT_COMPLETED应用)

Android应用 开机自启动

Android 程序随开机自动运行

Android 程序随开机自动运行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/308445
推荐阅读
相关标签
  

闽ICP备14008679号