首页 > 其他分享 >android-开机自启动

android-开机自启动

时间:2023-04-21 11:13:52浏览次数:42  
标签:ComponentName 开机 intent componentName 自启动 new android com

原文地址 zhuanlan.zhihu.com

残枫cps残枫cps

​目录收起跳过锁屏界面直接显示到界面广播判断包名所对应的应用是否安装在SD卡上获取自启动管理页面的Intent

由于安全原因,自2021年开始,所有的EMUI都不再支持 "应用启动 "设置的意图了

Android 10 (API 级别 29) 及更高版本对后台应用可启动 Activity进行限制。Android10中, 当App的Activity不在前台时,其启动Activity会被系统拦截,导致无法启动。
向用户申请 SYSTEM_ALERT_WINDOW权限,系统就不会拦截该程序后台启动的Activity。
示例代码如下:

//AndroidManifest中

//检查是否已经授予权限

if (!Settings.canDrawOverlays(this)) {
//若未授权则请求权限
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 0);
}

其中,Settings.canDrawOverlays(this)方法是在API level 23也就是Android M中新加入的用于检查当前是否拥有出现在“出现在其他应用上”权限的方法。在6.0以前的系统版本,悬浮窗权限是默认开启的,直接使用即可。

跳过锁屏界面直接显示到界面

int flags = WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
getWindow().addFlags(flags);

添加组件

ComponentName localComponentName = new ComponentName(MyApplication.getContext(), BootReceiver.class);
int i = MyApplication.getContext().getPackageManager().getComponentEnabledSetting(localComponentName);
Log.e("自启动 >>>>", "onCreate: " + i);

以下是直接打开系统页面。若是有的android系统找不到应用设置页面(如定制系统)

Intent intent = ApplicationUtil.getAutostartSettingIntent(this);
tartActivity(intent);

/**
* 获取自启动管理页面的Intent
*
* @param context context
* @return 返回自启动管理页面的Intent
*/
public static Intent getAutostartSettingIntent(Context context) {
ComponentName componentName = null;
String brand = Build.MANUFACTURER;
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
switch (brand.toLowerCase()) {
case "samsung"

标签:ComponentName,开机,intent,componentName,自启动,new,android,com
From: https://www.cnblogs.com/cps666/p/17339658.html

相关文章

  • Android-service
    原文地址zhuanlan.zhihu.com残枫cpsService是一种可在后台执行长时间运行操作而不提供界面的应用组件。AndroidServiceAndroidService是组件,既不能说它是单独的进程也不能说它是单独的线程。如果非要从通俗的语言层面来理解的话,姑且将其理解为对象。这个Service对象本......
  • 如何通过Android studio 安装卸载apk
    原文地址zhuanlan.zhihu.com残枫cps​目录收起adb配置安装删除apkadb配置自己在安装AndroidStudio的adb时遇到了配置好了环境变量,在cmd中可以执行adb命令行,而在AndroidStudio中的Terminal中却无法执行,显示adb不是内部或外部命令.一、配置环境变量首先要找到adb.exe的......
  • Android事件分发-基础原理和场景分析
    作者:京东零售 郭旭锋1为什么需要事件分发和其他平台类似,Android中View的布局是一个树形结构,各个ViewGroup和View是按树形结构嵌套布局的,从而会出现用户触摸的位置坐标可能会落在多个View的范围内,这样就不知道哪个View来响应这个事件,为了解决这一问题,就出现了事件分发......
  • Android进程间的通信方式
    原文地址juejin.cn前言在日常的开发中,我们可能会接触到多进程,比如向外界提供服务,或者因为某些原因把某个操作分离到独立的进程执行等等。那么进程与进程之间没办法直接进行数据的传输,也就是我们常说的进程间通信,因此需要借助特定的方案,下面我们一起了解一下几种进程间通信的......
  • 深入理解Android进程间通信机制
    原文地址juejin.cnAndroid系统中有大量IPC(进程间通信)的场景,比如我们想要创建一个新的进程,需要通过Socket这种IPC方式去让ZygoteFork新进程;如果我们要杀掉一个进程,需要通过信号这种IPC方式去将SIGNAL_KILL信号传递到系统内核;如果我们想要唤醒主线程处于休眠中的Looper,需要管道......
  • Android进程间通信总结
    原文地址blog.csdn.netIPCIPC为(Inter-ProcessCommunication)缩写,称为进程间通信或跨进程通信,指两个进程间进行数据交换的过程。安卓中主要采用Binder进行进程间通信,当然也支持其他IPC方式,如:管道,Socket,文件共享,信号量等。Binder简介1.为什么使用Binder?性能方面:......
  • android8 rk3399 同时支持多个USB摄像头
    文章目录一、前文二、CameraHal_Module.h三、CameraHal_Module.cpp四、编译&烧录Image五、App验证一、前文Android系统默认支持2个摄像头,一个前置摄像头,一个后置摄像头需要支持数量更多的摄像头,得修改AndroidHal层的代码二、CameraHal_Module.h修改CAMERAS_SUPPORT_MAX三、Camer......
  • Android问题解决:android.os.FileUriExposedException: file:///storage/......Intent.
    文章目录一、遇到问题二、解决问题三、分析问题一、遇到问题---------beginningofcrash2022-12-2720:18:15.01014422-14422/com.lisi.evidence_boxE/AndroidRuntime:FATALEXCEPTION:mainProcess:com.lisi.evidence_box,PID:14422android.os.FileUriExpose......
  • android折线图的实现
    一:配置参考上篇博客二:模板代码MainActivity:publicclassMainActivityextendsAppCompatActivity{privateLineChartmChart;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentVi......
  • Android安全检测 - 发送隐式广播风险
    这章来学习“发送隐式广播风险”,这个风险和动态注册Receiver风险有呼应之处,可以结合起来一起看。一、漏洞原理隐式广播是指未指定接收方(接收的范围),在发送广播的过程中所有的APP均能够接收到这个广播,那么就会存在广播被拦截的风险,若发送的广播携带数据那么就存在数据泄漏的风险,若......