当前位置: 首页 > news >正文

Android7.1 高通 特定apk最上面活动时,禁止关机或重启

1、判断apk是否在最上面活动

        private static boolean isForground(final Context context){
        ActivityManager mActivityManager = (ActivityManager)                         context.getSystemService(Context.ACTIVITY_SERVICE);
       if (mActivityManager.getRunningTasks(1) == null) {
            Log.e("hdxxx", "running task is null, ams is abnormal!!!");
            return false;
       }
        ActivityManager.RunningTaskInfo mRunningTask =
                mActivityManager.getRunningTasks(1).get(0);
        if (mRunningTask == null) {
            Log.e("hxxx", "failed to get RunningTaskInfo");
            return false;
        }
        String pkgName = mRunningTask.topActivity.getPackageName();
        Log.e("hxxx", "pkgName:" + pkgName);
        if(pkgName.equals("com.mangechargespot.app")){
            return true;
        }
        return false;
    }

2、阻止关机或重启

在/frameworks/base/services/core/java/com/android/server/power/ShutdownThread.java下:

static void shutdownInner(final Context context, boolean confirm) {
         // ensure that only one thread is trying to power down.
         // any additional calls are just returned
        Log.d("hxxx","ShutdownThread_____shutdownInner()");


        if(isForground(context)){
            Toast.makeText(context,"阻止关机或重启",Toast.LENGTH_SHORT).show();
            return;
        }


         synchronized (sIsStartedGuard) {
             if (sIsStarted) {
                 Log.d(TAG, "Request to shutdown already running, returning.");

相关文章:

  • 算法----小行星碰撞
  • 解决SSH连接自动断开的问题
  • [Vue 配置] Vite + Vue3 项目配置 Tailwind CSS
  • 2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-B卷
  • 人充当LLM Agent的工具(Human-In-The-Loop ),提升复杂问题解决成功率
  • STM32F429主控TB6612驱动直流电机----解决PWM波形未输出bug
  • 清华学霸告诉你:如何自学人工智能?
  • 【Python 千题 —— 基础篇】输出列表方差
  • 国产化项目改造:使用达梦数据库和东方通组件部署,前后端分离框架
  • mac中安装Homebrew
  • [Docker]六.Docker自动部署nodejs以及golang项目
  • SpringCloud微服务:Ribbon负载均衡
  • 【微服务专题】Spring启动过程源码解析
  • 【Java并发编程三】线程的基本使用一
  • 论信息系统项目的沟通管理
  • @jsonView过滤属性
  • 78. Subsets
  • maven工程打包jar以及java jar命令的classpath使用
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • python学习笔记 - ThreadLocal
  • Tornado学习笔记(1)
  • Vue2.0 实现互斥
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 番外篇1:在Windows环境下安装JDK
  • 关于List、List?、ListObject的区别
  • 计算机在识别图像时“看到”了什么?
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 算法-插入排序
  • 为什么要用IPython/Jupyter?
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 容器镜像
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #宝哥教你#查看jquery绑定的事件函数
  • (003)SlickEdit Unity的补全
  • (1)虚拟机的安装与使用,linux系统安装
  • (Git) gitignore基础使用
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (翻译)terry crowley: 写给程序员
  • (附源码)计算机毕业设计大学生兼职系统
  • (论文阅读40-45)图像描述1
  • (南京观海微电子)——COF介绍
  • (篇九)MySQL常用内置函数
  • (译) 函数式 JS #1:简介
  • (原創) 物件導向與老子思想 (OO)
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @media screen 针对不同移动设备
  • @RequestMapping 的作用是什么?
  • @synthesize和@dynamic分别有什么作用?
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限