Android获取手机已安装应用列表JAVA实现

news2024/11/23 15:06:34

最终效果:

 设计

 

实现java代码:

//获取包列表
    private List<String> getPkgList() {
        List<String> packages = new ArrayList<String>();
        try {
            //使用命令行方式获取包列表
            Process p = Runtime.getRuntime().exec("pm list packages");
            //取得命令行输出内容写入流
            InputStreamReader isr = new InputStreamReader(p.getInputStream(), "utf-8");
            //读取流
            BufferedReader br = new BufferedReader(isr);
            //读取行
            String line = br.readLine();
            //遍历包列表
            while (line != null) {
                line = line.trim();
                if (line.length() > 8) {
                    String prefix = line.substring(0, 8);
                    if (prefix.equalsIgnoreCase("package:")) {
                        line = line.substring(8).trim();
                        if (!TextUtils.isEmpty(line)) {
                            //添加到列表
                            packages.add(line);
                        }
                    }
                }
                line = br.readLine();//读取下一行
            }
            br.close();//关闭流
            p.destroy();//消毁进程
        } catch (Throwable t) {
            System.out.println("读取包列表出错");
        }
        return packages;//返回包列表
    }
    //使用系统API获取安装包列表
    private List<String> getPkgListWithSysApi() {
        List<String> packages = new ArrayList<String>();
        try {
            //取包信息列表
            List<PackageInfo> packageInfos = this.getApplicationContext().getPackageManager().getInstalledPackages(
                    PackageManager.GET_ACTIVITIES | PackageManager.GET_SERVICES);
            //遍历包列表
            for (PackageInfo info : packageInfos) {
                //取包名
                String pkg = info.packageName;
                //添加到列表
                packages.add(pkg);
            }
        } catch (Throwable t) {
            t.printStackTrace();;
        }
        return packages;
    }

 

调用:

 StringBuilder sb = new StringBuilder();
        //遍历包列表中包名
        for (String v:getPkgList()
             ) {
            System.out.println("包名:"+v);
            sb.append("包名:"+v+"\n");//添加包名到字符串
        }
        tv.setText(sb.toString());//显示到文本控件中

显示 :

 

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

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

相关文章

【微信小程序开发】一文带你详解小程序组件和 API 的使用

引言 在小程序开发中&#xff0c;组件和API是非常重要的部分&#xff0c;它们可以帮助我们构建丰富的用户界面和实现各种功能。本文将介绍小程序中常用的组件和API&#xff0c;并提供相应的代码示例。 文章目录 引言组件文本组件图片组件按钮组件输入框组件列表组件 API网络请…

C语言小练习(三)

&#x1f31e; “也许你感觉自己与周遭格格不入&#xff0c;但正是那些你一人度过的时光&#xff0c;让你变得越来越有意思&#xff0c;等有天别人终于注意到你的时候&#xff0c;他们就会发现一个比他们想象中更酷的人。”-《生活大爆炸》 Day03 &#x1f4dd; 一.选择题&…

【Vue框架】基本的login登录

前言 最近事情比较多&#xff0c;只能抽时间看了&#xff0c;放几天就把之前弄的都忘了&#xff0c;现在只挑着核心的部分看。现在铺垫了这么久&#xff0c;终于可以看前端最基本的登录了&#x1f602;。 1、views\login\index.vue 由于代码比较长&#xff0c;这里将vue和js…

vxe-table解决虚拟滚动时的白屏问题

项目中使用虚拟滚动&#xff0c;滚动一快就会白屏&#xff0c;花了两天时间看了源码&#xff0c;检查渲染元素&#xff0c;发现元素渲染的是很快的&#xff0c;跟得上的&#xff0c;但是还是会出现白屏&#xff0c;后面检查样式&#xff0c;发现只要把表格背景色去掉&#xff0…

平安私人银行慈善沙龙广州站:善财传承公益有道,广州分行聚爱同行

近年来&#xff0c;平安私人银行将慈善作为客户服务的王牌权益之一&#xff0c;激发和满足客户公益慈善心愿&#xff0c;打造财富人群和困境人群的桥梁&#xff0c;并链接公益机构等专业组织&#xff0c;深度挖掘金融赋能慈善的多种可能性&#xff0c;让财富通过慈善事业释放出…

STM32CubeMX配置STM32G0 Standby模式停止IWDG(HAL库开发)

1.打开STM32CubeMX选择好对应的芯片&#xff0c;打开IWDG 2.打开串口1进行调试 3.配置好时钟 4.写好项目名称&#xff0c;选好开发环境&#xff0c;最后获取代码。 5.打开工程&#xff0c;点击魔术棒&#xff0c;勾选Use Micro LIB 6.修改main.c #include "main.h"…

springCloud整合Zookeeper的时候调用找不到服务

SpringCloud整合Zookeeper的时候调用找不到服务 首先&#xff0c;我们在注册中心注册了这个服务&#xff1a; 然后我们使用RestTemplate 调用的时候发现失败了&#xff1a;找不到这个服务&#xff1a; 找了很多资料发现这个必须要加上负载才行 BeanLoadBalanced //负载publi…

javaee idea创建maven项目,使用el和jstl

如果使用el表达式出现下图问题 解决办法 这是因为maven创建项目时&#xff0c;web.xml头部声明默认是2.3&#xff0c;这个默认jsp关闭el表达式 办法1 在每个需要用到el和jstl的页面的上面加一句: <% page isELIgnored"false" %> 方法2 修改web.xml文件开…

node和前端项目宝塔部署

首先需要一台服务器 购买渠道&#xff1a;阿里云、腾讯云、百度云、华为云 一、以阿里云为例 购买esc 可临时购买测试服务器 二、安装宝塔 复制公网ip地址 通过Xshell 进行账号密码的连接 连接后访问宝塔官网 宝塔面板下载&#xff0c;免费全能的服务器运维软件 找到自己…

jenkins Linux如何修改jenkins 默认的工作空间workspace

由于jenkins默认存放数据的目录是/var/lib/jenkins&#xff0c;一般这个var目录的磁盘空间很小的&#xff0c;就几十G,所以需要修改jenkins的默认工作空间workspace 环境 jenkins使用yum安装的 centos 7 正题 1 查看jenkins安装路径 [rootlocalhost jenkins_old_data]# rpm…

二叉树题目:二叉树的层序遍历 II

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;二叉树的层序遍历 II 出处&#xff1a;107. 二叉树的层序遍历 II 难度 4 级 题目描述 要求 给你二叉树的根结点 root \texttt{root} root&#x…

shopee开店前期要怎么做!新手必须知道的小技巧

在shopee开店前期可以先做以下准备&#xff1a; 1.shopee开店前精准定位 确定目标人群&#xff1a;做店铺定位离不开目标人群需求&#xff0c;人群定位解决的是产品卖给谁的问题&#xff0c;这就需要了解客户群体的各方面信息。加之&#xff0c;Shopee平台作为东南亚土生土长的…

Docker容器学习:搭建私有镜像仓库Harbor

系统环境&#xff1a; Centos7.9Docker-ce:24 安装Docker-Compose curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose添加执行权限并验证 [rootnode4 ~]# chmod…

dolphinschedule配置企微告警服务(WeChat群组)

一、前置说明 ds配置好工作流后&#xff0c;比较重要的一个就是上线后的监控报警服务&#xff0c;如果你是基于企微作为协同办公的&#xff0c;WeChat群组预警必须是要安排上的&#xff0c;文章基于自建应用配合群组方式构建预警群&#xff0c;接入后&#xff0c;任务成功或者…

多线程与高并发——并发编程(1)

文章目录 并发编程一、线程的基本概念1 基础概念1.1 进程和线程1.2 多线程1.3 串行、并行、并发1.4 同步异步、阻塞非阻塞 2 线程的创建2.1 继承Thread类&#xff0c;重写run方法2.2 实现Runnable接口&#xff0c;实现run方法2.3 实现Callable接口&#xff0c;实现call方法&…

Spring Boot+Atomikos进行多数据源的分布式事务管理详解和实例

文章目录 0.前言1.参考文档2.基础介绍3.步骤1. 添加依赖到你的pom.xml文件:2. 配置数据源及其对应的JPA实体管理器和事务管理器:3. Spring BootMyBatis集成Atomikos4. 在application.properties文件中配置数据源和JPA属性&#xff1a; 4.使用示例5.底层原理 0.前言 背景&#x…

漏洞复现 || SXF应用交付系统RCE(0Day)

漏洞描述 SXF应用交付管理系统login存在远程命令执行漏洞&#xff0c;攻击者通过漏洞可以获取服务器权限&#xff0c;执行任意命令。 免责声明 技术文章仅供参考&#xff0c;任何个人和组织使用网络应当遵守宪法法律&#xff0c;遵守公共秩序&#xff0c;尊重社会公德&#…

【Linux】ctime、mtime、atime

/etc/fstab中的noatime noatimedir 挂载选项linux下文件的ctime、mtime、atime一、/etc/fstab /etc/fstab是用来存放文件系统的静态信息的文件。 系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中…

libevent源码学习3---事件event

libevent源码学习3—事件event libevent 的基本操作单元是事件。每个事件代表一组条件的集合, 这些条件包括: 文件描述符已经就绪, 可以读取或者写入文件描述符变为就绪状态,可以读取或者写入(仅对于边沿触发 IO)超时事件发生某信号用户触发事件 所有事件具有相似的生命周期。…

C++ string 类

文章目录 引用头文件初始化赋值1. 空串2. 拷贝复制3. 直接初始化赋值4. 单个字符初始化 遍历 string 类1. 下标索引遍历2. 迭代器遍历3. 使用 range for 循环遍历字符串&#xff08;需要 C11 或更新的版本&#xff09; string 常用方法判断字符串是否为空串获取字符串中字符个数…