Android : 通过pid获取app包名

2023-11-14

方法一:

这个方法用在app主线程的activity或service里,因为要有context获取am。

    private String getAppName(int pid)
    {
        String pkgName = "";
        ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
        //ActivityManager am = (ActivityManager)ServiceManager.getService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> mRunningProcess = am.getRunningAppProcesses();
        for (ActivityManager.RunningAppProcessInfo amProcess : mRunningProcess)
        {
            if(amProcess.pid == pid)
            {
         
              pkgName = amProcess.processName;
              break;
            }
        }
     
        return pkgName;
    }

 

方法二:

 这个方法可以用在主线程或任意子线程,即使没有context的线程也可以用,但app要用读取文件权限。

private String getAppName(int pid)                                                                                               
    {                                                                                                                                
        String pkgName = "";                                                                                                         
        File f = null;
        f = new File("/proc/"+pid+"/cmdline"); 
        if(pid != 0 && f != null && f.exists())
        {    
            BufferedReader br = null;         
            try {             
                    br = new BufferedReader(new FileReader("/proc/"+pid+"/cmdline"), 256);         
                    String line;              
                    if ((line = br.readLine()) != null) {                
                       pkgName = line.trim(); 
                    Log.i(TAG,"getAppName() ="+pkgName);                   
                }         
            } catch (FileNotFoundException e) {             
               e.printStackTrace();          
            } catch (IOException e) {             
               e.printStackTrace();          
            } finally {             
            if (br != null) {                 
                try {                     
                       br.close();                 
                    } catch (IOException e) {                     
                        e.printStackTrace();                  
                   }             
                }         
           }
       
        }        
                                                                                                                                    
        return pkgName;                                                                                                          
    }  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android : 通过pid获取app包名 的相关文章

  • 详解汽轮机的TSI系统

    汽轮机安全监视系统 TSI 是一种集保护和检测功能于一身的永久监视系统 是大型旋转机械必不可少的保护系统 TSI可以对机组在起动 运行过程中的一些重要参数能可靠地进行监视和储存 它不仅能指示机组运行状态 记录输出信号 实现数值越限报警 出现
  • 基于LabVIEW的PID算法解读

    记录一下 方便以后翻阅 下图是基本的PID算法实现方式 以及实现PID控制器所需的假设和转换 为实现PID控制器 LabVIEW要求算法对输入信号进行采样并离散积分和微分操作 一 误差计算 e k SP k PV k 上式中 e k 表示当
  • 【抗扰PID控制】干扰抑制PID控制器研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 Simulink 文章讲解 1 概述 文献来源 抗扰PI
  • TSI系统测量参数之:转速和零转速

    一 TSI系统测量参数 1 轴向位移 2 盖振或瓦振 3 偏心 4 键相 5 零转速 6 轴向振动 7 相对热膨胀 胀差 8 绝对热膨胀 缸胀 二 各参数作用 1 零转速与转速 1 零转速 主要用在汽机转速到零时投盘车的连锁以及对大机转速的
  • Android 学习笔记

    目录 一 Android入门 1 Android 概述 2 Android Studio 3 创建模拟器 4 使用外部模拟器 5 第一个app 二 app开发基础 1 开发语言 2 app工程目录结构 3 文本控件TextView 1 设置
  • PID算法应用于室内温度控制的C语言实现

    我最近在学习PID算法 对此很感兴趣 所以与大伙分享下 有不足的地方欢迎指出 非常谢谢 PID算法的基本内容本篇博客就不做阐述了 网上有很多资料 文章的主题是用C语言实现PID算法 为了更好的理解 我采用软件模拟室内温度控制的方式与大伙分享
  • 深入浅出PID控制算法(二)————PID算法离散化和增量式PID算法原理及Matlab实现

    引言 上篇介绍了连续系统的PID算法 但是计算机控制是一种采样控制 他只能根据采样时刻的偏差来计算控制量 因此计算机控制系统中 必须对公式进行离散化 具体就是用求和代替积分 用向后差分来代替微分 使模拟PID离散化为数字形式的差分方程 准备
  • 【STM32CubeMX】位置式PID调节控制输出电压(超详解)

    本文将借助STM32CubeMX来配置ADC DMA DAC USART 并利用PID位置式算法实现对输出电压进行AD采集通过PID算法调节DAC 获取到我们想要的电压值 讲解的主要知识 何为PID以及为何需要PID STM32CubeMX
  • Android中 @id 与 @+id 区别

    Android 中的组件需要用一个int 类型的值来表示 这个值也就是组件标签中的id 属性值 id 属性只能接受资源类型的值 也就是必须以 开头的值 例如 id abc id xyz等 如果在 后面使用 表示当修改完某个布局文件并保存后
  • TSI系统测量参数之:轴向振动

    一 TSI系统测量参数 1 轴向位移 2 盖振或瓦振 3 偏心 4 键相 5 零转速 6 轴向振动 7 相对热膨胀 胀差 8 绝对热膨胀 缸胀 二 各参数作用 2 轴向振动 测量的是大轴相对于轴瓦的X向振动和Y向振动 反馈电压量程为 4V至
  • 如何以编程方式获取 OS X 上给定 PID 的打开文件描述符列表?

    我所看到的一切都说要使用lsof p 但我正在寻找不需要 fork exec 的东西 例如 在 Linux 上 人们可以简单地步行 proc pid fd You can use proc pidinfo与PROC PIDLISTFDS枚举
  • docker和主机之间的PID映射

    docker 命名空间与主机命名空间有何不同以及 pid 如何在这两者之间映射 谁能给我一个想法 有助于使用源代码在主机和 docker 之间映射 pid 的简单方法 您可以在中找到映射 proc PID status文件 它包含这样一行
  • 在 Unix 环境中检测过时的 pid 文件

    在 Unix 环境中检测陈旧 pid 文件的标准 跨平台方法是什么 假设我想终止应用程序的旧实例 但如果该应用程序已经退出 我当然不想破坏具有相同 PID 的不相关进程 现在我找到了一种在我的 Ubuntu 也可能是其他基于 GNU Lin
  • Java程序如何获得自己的进程ID?

    如何获取我的 Java 进程的 ID 我知道有几种依赖于平台的技巧 但我更喜欢更通用的解决方案 不存在可以保证在所有 jvm 实现中工作的独立于平台的方法 ManagementFactory getRuntimeMXBean getName
  • 查看用户最近执行的Android任务

    我想查看我的 Android 手机最近的任务 我尝试了一些来自互联网的代码 但没有一个能正常工作 我只想获取用户最后执行的应用程序的PID和名称 例如 如果我执行计算器应用程序 然后执行我创建的最近任务应用程序 则该应用程序应该能够告诉我类
  • 在 python 中,是否有跨平台的方法来确定哪个进程正在侦听给定端口?

    在linux下 我可以使用lsof i如以下函数所示 def FindProcessUsingPort portnum import os fp os popen lsof i s portnum lines fp readlines fp
  • AppleScript:从应用程序隐藏/获取进程名称

    我想隐藏最前面的应用程序 我知道您可以使用以下语法隐藏进程 tell application System Events set visible of process to false end tell 我知道如何获取最前面的应用程序 pa
  • 如何通过MATLAB命令获取外部程序(由MATLAB调用)的PID?

    我很好奇如何获取 MATLAB 在 Windows 中 调用的外部程序的 PID 例如 我通过命令调用 MATLAB 中的记事本 记事本 exe or 系统 记事本 exe 我想在调用此记事本后立即获取它的PID 由于一台计算机上可能会同时
  • 如何通过VBA获取当前Excel实例的进程ID,而不使用标题?

    如何获取运行 VBA 代码的当前 Excel 实例的进程 ID 我不想通过标题中的名称来请求它 当我有两个或多个具有相同标题的 Excel 实例时 这会导致问题 您可以使用此方法来获取当前进程ID Declare Function GetC
  • 如何在bash中列出所有后台pid

    要么我无法正确表达我的搜索 要么答案不容易找到 但我正在尝试找出如何列出我的所有后台任务 PID 例如 到目前为止 我发现要列出我们使用的最后一个 PID 但现在我想列出之前任务的 PID 如果存在 但我找不到如何做到这一点 最终我想列出我

随机推荐

  • 数据采集专家----4通道AD采集子卡推荐

    FMC136是一款4通道250MHz采样率16位AD采集FMC子卡 符合VITA57规范 可以作为一个理想的IO模块耦合至FPGA前端 4通道AD通过高带宽的FMC连接器 HPC 连接至FPGA从而大大降低了系统信号延迟 该板卡支持板上可编
  • Unity_Shader高级篇_16_Unity Shader入门精要_减少计算复杂度

    16 8 减少计算复杂度 16 8 1 Shader的LOD技术 和16 5 2提到的模型的LOD技术类似 Shader的LOD技术可以控制使用的Shader等级 它的原理是 只有Shader的LOD值小于某个设定的值 这个Shader才会
  • vue rsa对密码加密(jsencrypt)

    首先用npm命令下载jsencrypt npm install jsencrypt dep 在vue文件中引入jsencrypt import JSEncrypt from jsencrypt 对password加密 this encryp
  • vcglib 说明(转载)

    先来看看 VCGlib 能做什么 最基本的 它提供 Mesh triangular mesh tetrahedralmesh 三角网格或四面体网格 数据结构的定义 该数据结构支持对 Mesh数据的快速访问 拓扑信息 空间查询等 以及高效执行
  • Linux编译器-gcc 的使用以及 make/Makefile的用法

    文章目录 一 gcc 编译器 1 gcc 命令格式 gcc选项 2 完成过程 2 1预处理 2 2 编译 生成汇编 2 3 汇编 生成机器可识别代码 2 4 链接 生成可执行文件 二 make Makefile 1 简单介绍 2 示例代码
  • Scala高阶函数

    匿名函数 而在大量的spark中大都用的是匿名函数 不为函数命名 然后将其复制个一个变量 如 匿名函数格式 Val 变量名 参数 类型 gt 函数体 高阶函数 函数参数 1 将函数做参数传给另一个函数 如 首先我们定义了一个函数BigDat
  • 学习记录——matlab批量读取与存储

    要求文件名按照一定规律排列 如 代码 clc close all clear 设置目标文件夹的路径 folder C Users 26748 Desktop two saveFolder C Users 26748 Desktop two0
  • 手撕机器学习算法--一步步推导-------NFL(没有免费午餐定理)

    文章目录 前言 一 NFL是什么 二 表现形式 三 介绍 四 手动推导 前言 其实机器学习也好 深度学习也罢 在我看来 代码编程终究是不重要的 因为现成的库 其数学原理 其公式推导才是我们需要理解的地方 一 NFL是什么 没有免费的午餐定理
  • BLAS+BLACS+LAPACK+SCALAPACK安装

    最快的安装是用下面的scalapack installer 它将自动联网安装SCALAPACK以及所需要的BLAS BLACS LAPACK 下面是简短说明 INTRODUCTION The ScaLAPACK installer is a
  • 人脸识别打卡项目(4)

    目录 服务器打卡函数实现 签到验证检测 百度人脸识别复用 总结 服务器打卡函数实现 打卡函数的主要工作流程如图所示 当启动开始签到后 调用打卡签到响应函数 启动人脸采集设 备 然后与百度人脸库注册的人脸进行对比 如果用户存在 返回用户姓名
  • MATLAB之绘图基础

    第7部分 MATLAB的绘图基础 1 二维图形绘制 1 plot 函数 格式 plot x plot x y 图形绘制函数plot x 的格式说明 x内容 说明 实向量y 以y元素下标序号i为横坐标 元素y为纵坐标 绘制 I y 的有序集合
  • paddle在Edgeboard与安卓上部署

    Edgboard PaddleLite进行推理 支持Paddle模型的推理部署 不需要模型转化过程 支持c 和hpyton的接口 提供ZU3 ZU5 ZU9 推荐使用Paddlx进行模型训练 其训练出的模型会有API进行模型导出 图像前处理
  • NIO、AIO、BIO的区别(通俗理解)

    BIO 同步阻塞 服务端需要对客户端的每个请求处理完成后 才会继续接受客户端的请求 客户端也会等待服务端处理完请求后才会发送请求 通常会使用多线程去处理 因为BIO每个连接一个单独的线程 NIO 同步非阻塞 NIO使用单线程或者只使用少量的
  • 2021百度之星初赛三---网格路径(dfs+剪枝/dp方程+LGV定理)

    任意门 题意 思路 每一步只能向下走或者向右走 然后所构成的路径不能重叠 所以就尽可能的往下面走 然后给第二条更大的空间 解法1 dfs 剪枝 include
  • 微软常用运行库(持续更新中)

    一 什么是运行库 运行库就是支持大部分程序软件运行的基础 由于很多Windows系统的常用软件都是采用 Microsoft Visual Studio 编写的 如图1 1所示 所以这类软件的运行需要依赖微软Visual C 运行库 比如像
  • [VarifocalNet] VarifocalNet: An IoU-aware Dense Object Detector (CVPR. 2021oral)

    文章目录 1 Motivation 2 Contribution 3 Method 3 1 IACS IoU Aware Classification Score 3 2 Varifocal Loss 3 3 Star Shaped Box
  • 报错,props 不可重写,需要复制给data重新定义

    报错 Vue warn Avoid mutating a prop directly since the value will be overwritten whenever the parent component re renders
  • egg学习笔记

    安装egg 我们推荐直接使用脚手架 只需几条简单指令 即可快速生成项目 npm gt 6 1 0 mkdir egg example cd egg example npm init egg type simple npm i 启动项目 np
  • Java 检测类是否可加载

    检查类是否存在的一种常见方法是执行 Class forName my Class 您可以使用捕获 ClassNotFoundException 的 try catch 来包装它并决定要做什么 如果需要 您可以在具有 main 的包装类中执行
  • Android : 通过pid获取app包名

    方法一 这个方法用在app主线程的activity或service里 因为要有context获取am private String getAppName int pid String pkgName ActivityManager am A