Android 查询及获取应用程序 Package 及 Acticity 名称的方法

一、通过命令查询和获取应用的Package及Acticity

(一)通过命令查询应用包名及安装信息

以下是常用命令:

命令形式作用
adb shell pm list packages查询系统中所有应用的包名
adb shell pm list packages -s查询系统应用包名
adb shell pm list packages -3查询第三方应用包名
adb shell pm list packages -f查询系统中所有应用的包名及与包相关联的文件信息
adb shell pm list packages -u

查询包和安装信息(安装来源)

组合查询,例如

adb shell pm list packages -s -f

(二)通过命令获取当前应用包名及活动名称

1、常用方法

Linux系统查询命令(Linux 系统采用 grep 命令查询文件中的字符串):

adb shell dumpsys window | grep mCurrentFocus

Windows系统查询命令(Windows 系统采用 findstr 命令查询文件中的字符串):

adb shell dumpsys window | findstr mCurrentFocus

2、其他方法

先使用 adb logcatadb logcat -s ActivityTaskManager 命令打印 log 信息,然后启动应用程序相应的活动,然后在 log 信息中找到含有 ActivityTaskManager 与启动 Activity 相关的信息,例如:

ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 pkg=com.android.gallery3d cmp=com.android.gallery3d/.app.GalleryActivity bnds=[652,2035][795,2140]} from uid 10067

最后通过上述 log 信息可知,包名为 com.android.gallery3d ,被启动的活动名为 GalleryActivity

二、通过代码查询和获取应用程序的Package及Acticity

注意:在 Android 11 (API 30)中引入了包可见性的概念,即在 Android 11 及以上版本中将不能直接获取或查询到系统已安装的全部应用包名,包括第三方应用。所以,直接调用 PackageManagergetInstalledApplications() getInstalledPackages() 等的方法后需要在清单文件中声明以下权限,否则只能获取或查询到部分已安装应用包名:

<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>

(一)通过查询指定应用包名判断应用是否存在

   public boolean isTargetPackageName(Context context, String packageName){PackageManager packageManager = context.getPackageManager();try {packageManager.getApplicationInfo(packageName, 0);return true;} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return false;}

(二)获取系统所有的应用包名

    public List<String> getAllApplicationPackages(Context context) {//1. 创建泛型为String类型的List类型对象packageList,用于缓存所有获取到的应用包名List<String> packageList = new ArrayList<String>();try{//2. 通过getPackageManager()获取PackageManager类型的对象managerPackageManager manager = context.getPackageManager();//3. 通过调用manager.getInstalledPackages()获取的泛型为PackageInfo类型的List类型对象packageInfoListList<PackageInfo> packageInfoList = manager.getInstalledPackages(0);//4. 创建PackageInfo类型的变量info,用于接收packageInfoList对象中存储的PackageInfo类型数据//,然后通过for循环遍历infofor (PackageInfo info : packageInfoList) {//5.将从info中获取到的应用包名packageName缓存到packageList对象中packageList.add(info.packageName);Log.i("MainActivity", "----------packageName = " + info.packageName);}} catch (Exception e){e.printStackTrace();}return packageList;}

(三)判断通过 Intent 启动 Acticity 是否存在

 if (getPackageManager().resolveActivity(intent, 0) == null) {  // 说明系统中不存在这个activity}if (intent.resolveActivity(getPackageManager()) == null) {  // 说明系统中不存在这个activity}List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, 0);if (list.size() == 0) {   // 说明系统中不存在这个activity}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855408.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 函数

1、CURDATE()&#xff1a;返回当前的日期。 2、查询当前年月 SELECT DATE_FORMAT(CURDATE(),%Y-%m) AS year_month 3、当前日期添加 1 个月 INTERVAL 1 MONTH 4、查询近6个月的月份 SELECT DATE_FORMAT(CURDATE(),%Y-%m)AS year_month UNION SELECT DATE_FORMAT((CURDAT…

【网络安全学习】使用Kali做信息收集 -03- <综合侦察>

综合侦察涉及从多个来源收集和分析目标的信息&#xff0c;以了解其背景、特征、潜在漏洞和风险。 下面介绍一些在Kali中常用的综合侦察工具。 1.Dmitry 它是一个命令行工具&#xff0c;可以使用不同的选项来收集目标的各种信息。 Dmitry可以与whois服务和Netcraft服务结合使…

【启明智显产品介绍】Model4 工业级HMI芯片详解系列专题(一):芯片性能

Model4 工业级HMI芯片详解系列专题&#xff08;一&#xff09;【芯片性能】 Model4系列工业级MPU是国产自主面向工业应用的RISC-V架构的应用级芯片&#xff0c;内置玄铁64bit RISC-V CPU C906&#xff0c;主频高达600MHz&#xff0c;算力约1380DMIPS。 Model4系列工业级MPU具…

BizDevOps全局建设思路:横向串联,纵向深化

本文来自腾讯蓝鲸智云社区用户&#xff1a;CanWay BizDevOps概述 IT技术交付实践方法在不断迭代中持续优化。在工业化时代&#xff0c;Biz&#xff08;业务&#xff09;、Dev&#xff08;开发&#xff09;、Ops&#xff08;运维&#xff09;三者往往相对分离&#xff0c;甚至有…

Transformer预测 | 基于Transformer+LSTM股票价格预测时间序列预测(Pytorch)

效果一览 基本介绍 股票行情是引导交易市场变化的一大重要因素,若能够掌握股票行情的走势,则对于个人和企业的投资都有巨大的帮助。然而,股票走势会受到多方因素的影响,因此难以从影响因素入手定量地进行衡量。但如今,借助于机器学习,可以通过搭建网络,学习一定规模的股…

API-操作元素内容

学习目标&#xff1a; 掌握操作元素内容 学习内容&#xff1a; 操作元素内容元素innerText属性元素innerHTML属性案例 操作元素内容&#xff1a; DOM对象都是根据标签生成的&#xff0c;所以操作标签&#xff0c;本质上就是操作DOM对象。就是操作对象使用的点语法。如果想要修…

Table 宽度超出页面宽度时,出现滚动条,单元格内容不换行实

修改前 方法 <div styleoverflow:auto><table stylewhite-space: nowrap></table> </div>修改后

@pytest.fixture与@pytest.mark.parametrize结合实现参数化

背景&#xff1a;测试数据既要在fixture方法中使用&#xff0c;同时也在测试用例中使用 使用方法&#xff1a;在使用parametrize的时候添加"indirectTrue"参数。pytest可以实现将参数传到fixture方法中&#xff0c;也可以在当前测试用例中使用。 原理&#xff1a;参…

Harbor本地仓库搭建003_Harbor常见错误解决_以及各功能使用介绍_镜像推送和拉取---分布式云原生部署架构搭建003

首先我们去登录一下harbor,但是可以看到,用户名密码没有错,但是登录不上去 是因为,我们用了负债均衡,nginx会把,负载均衡进行,随机分配,访问的 是harbora,还是harborb机器. loadbalancer中 解决方案,去loadbalance那个机器中,然后 这里就是25机器,我们登录25机器 然后去配置…

8.12 矢量图层面要素单一符号使用二(仅渲染中心点)

文章目录 前言仅渲染中心点&#xff08;Centroid fill&#xff09;QGis设置面符号为仅渲染中心点&#xff08;Centroid fill&#xff09;二次开发代码实现仅渲染中心点&#xff08;Centroid fill&#xff09; 总结 前言 本章介绍矢量图层线要素单一符号中仅渲染中心点&#xf…

DSP——从入门到放弃系列2——PLL锁相环(持续更新)

1、概述 锁相环&#xff08;Phase Locked Loop,PLL&#xff09;是处理器的时钟源&#xff0c;控制着C6678处理器中C66x内核、各外围设备的时钟的时钟比、对准和选通功能。 2、功能描述 上图显示了PLL和PLL控制器的逻辑实现。PLL控制器提供通过软件可配置的分频器&#xff0…

MT8766安卓4G核心板_MTK联发科PCBA方案开发

MT8766是联发科四核4G模块方案&#xff0c;安卓一体板。 采用台积电 12 nm FinFET 制程工艺&#xff0c;4*A53架构&#xff0c;Android 9.0操作系统&#xff0c;搭载2.0GHz 的 Arm NEON 引擎。提供了支持最新 OpenOS 及其要求苛刻的应用程序所需的处理能力&#xff0c;专为具有…

自然语言处理(NLP)—— 神经网络自然语言处理(Neural NLP)基础知识

1. 文章概览 本文是关于神经网络自然语言处理&#xff08;Neural NLP&#xff09;的概览&#xff0c;涵盖了基础原则、历史概览、处理流程、神经网络架构以及最近的训练范式。 1.1 基本原则 这部分会讲述自然语言处理&#xff08;NLP&#xff09;与神经网络在处理语言任务时遵…

关于UnityWebgl缓存机制

最近在做UnityWebgl热更的时候&#xff0c;我的热更程序集更新&#xff0c;而我所有运行过项目的设备都没有更新成功。而没运行过的设备则运行的是最新的程序集。那么说明必然是和缓存有关系了。 特意查了一下问题&#xff0c;发现Edge浏览器会把一些比较小的图片、脚本等资源进…

Android framework配置默认屏幕亮度值源码分析

1、概述 在Android中&#xff0c;config.xml文件用于配置各种系统设置和资源。对于屏幕亮度的配置&#xff0c;config.xml并不是直接用于设置屏幕亮度的地方&#xff0c;但它可以包含默认的系统设置和一些相关的参数。以下是如何在config.xml中配置一些与屏幕亮度相关的设置的…

yolov9-pytorch 深度学习目标检测算法模型

YOLOv9 论文 https://arxiv.org/abs/2402.13616 模型结构 YOLOv9将可编程梯度信息 (PGI) 概念与通用 ELAN (GELAN)架构相结合而开发&#xff0c;代表了准确性、速度和效率方面的重大飞跃。 算法原理 Yolov9将可编程梯度信息&#xff08;PGI&#xff09;和GLEAN&#xff08…

Swagger3.0接口生成并导入YApi

一、引入依赖 <!--Swagger-UI API文档生产工具--><dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency><!--解决Swagger访问主页时的…

PHP实现企业微信素材上传与获取的完整指南与踩坑日记

企业微信作为一款专门为企业打造的即时通讯工具&#xff0c;提供了丰富的功能和接口&#xff0c;其中包括素材管理。素材管理在企业内部的沟通、分享和展示中起着重要的作用。本篇文章将介绍如何使用PHP语言对接企业微信素材上传和获取的功能。 ## 1. 准备工作 首先&#xff0…

课设--学生成绩管理系统(三)

欢迎来到 Papicatch的博客 文章目录 &#x1f349;报告目的 &#x1f349;总体设计 &#x1f348; 模块处理逻辑 &#x1f349;数据库设计 &#x1f348;总览表 &#x1f348;表设计 &#x1f34d;管理员信息表 &#x1f34d;课程基本信息表 &#x1f34d;课程扩展信息…

19.Docker跨宿主机容器之间的通信macvlan

Docker跨宿主机容器之间的通信macvlan&#xff0c;类似桥接网络模式 macvlan通信类型&#xff0c;设置IP地址只能手动指定&#xff08;–ip&#xff09;一台一台设置IP地址 默认一个物理网卡&#xff0c;只有一个物理mac地址&#xff0c;虚拟多个mac地址&#xff08;让人感觉是…