android 获取已安装 错误代码,android获取手机已经安装的app信息

Android获取手机已安装APP(系统/非系统)

效果图

ef6a00c8727c169b95fc772ac4d9d8ca.png

主体代码

private ListView mlistview;

private ListpackageInfoList;

private ListapplicationInfoList;

private MyAdapter myAdapter;

private PackageManager pm;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main3);

mlistview=findViewById(R.id.mlistview);

getAllAppNames();

myAdapter=new MyAdapter(applicationInfoList);

mlistview.setAdapter(myAdapter);

myAdapter.notifyDataSetChanged();

mlistview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view, int position, long id) {

doStartApplicationWithPackageName(applicationInfoList.get(position).getPackageName());

}

});

}

//自定义适配器

public class MyAdapter extends BaseAdapter{

private Listlist;

public MyAdapter(Listlist){

this.list=list;

}

@Override

public int getCount() {

return list.size();

}

@Override

public Object getItem(int position) {

return list.get(position);

}

@Override

public long getItemId(int position) {

return position;

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

View view=null;

if(convertView==null){

view=LayoutInflater.from(Main3Activity.this).inflate(R.layout.mlistview_layout,null);

}else{

view=convertView;

}

TextView tv_packagename=view.findViewById(R.id.tv_packagename);

TextView tv_appname=view.findViewById(R.id.tv_appname);

ImageView img=view.findViewById(R.id.img);

tv_appname.setText(list.get(position).getName());

tv_packagename.setText(list.get(position).getPackageName());

img.setImageDrawable(list.get(position).getIcon());

return view;

}

}

public void getAllAppNames(){

pm=getPackageManager();

获取到所有安装了的应用程序的信息,包括那些卸载了的,但没有清除数据的应用程序

// packageInfoList=pm.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);

applicationInfoList=new ArrayList<>();

Listlist = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);

Collections.sort(list, new ApplicationInfo.DisplayNameComparator(pm));// 排序

Log.e("-------",list.size()+"");

applicationInfoList.clear();

for (int i=0;iresolveinfoList = getPackageManager()

.queryIntentActivities(resolveIntent, 0);

if(resolveinfoList.size() == 0){

return;

}

ResolveInfo resolveinfo = resolveinfoList.iterator().next();

if (resolveinfo != null) {

String packageName = resolveinfo.activityInfo.packageName;

//App启动的Activity

String className = resolveinfo.activityInfo.name;

// LAUNCHER Intent

Intent intent = new Intent(Intent.ACTION_MAIN);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

// 设置ComponentName参数1:packagename参数2:启动的Activity

ComponentName cn = new ComponentName(packageName, className);

intent.setComponent(cn);

startActivity(intent);

}

}

// 构造一个AppInfo对象 ,并赋值

private AppInfo getAppInfo(ApplicationInfo app) {

AppInfo appInfo = new AppInfo();

appInfo.setName(app.loadLabel(pm).toString());

appInfo.setIcon(app.loadIcon(pm));

appInfo.setPackageName(app.packageName);

return appInfo;

}

这里是定义的实体bean

public class AppInfo implements Serializable{

/** 序列号 */

private static final long serialVersionUID = -6660233212727684115L;

/** 名称 */

public String name;

/** (路径) */

public String path;

/** 图标 */

public Drawable icon;

/** 包名 */

public String packageName;

public static long getSerialVersionUID() {

return serialVersionUID;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPath() {

return path;

}

public void setPath(String path) {

this.path = path;

}

public Drawable getIcon() {

return icon;

}

public void setIcon(Drawable icon) {

this.icon = icon;

}

public String getPackageName() {

return packageName;

}

public void setPackageName(String packageName) {

this.packageName = packageName;

}

}

这里是mlistview_layout.xml的布局代码

mlistview_layout.xml布局效果图

b557afb2d84c7dd801084bf1def4bbbb.png

这里是activity_main3.xml布局代码

activity_main3.xml效果图

c3d95c0c55132a078f2c636d132bcce0.png

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

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

相关文章

android与ios ui切图关系,APP-IOS与Android界面设计与切图

做一全套的APP设计&#xff0c;流程是&#xff1a;1、界面设计&#xff1a;设计IOS界面&#xff1b;设计Android界面。2、切图&#xff1a;切IOS的2倍图和3倍图&#xff1b;切Android的hdpi,xhdpi,xxhdpi这三个尺寸的图。3、标注&#xff1a;以px为单位标注IOS界面的尺寸&#…

js禁止鼠标滑轮_js实现鼠标滑动到某个div禁止滚动

本文实例为大家分享了js实现鼠标滑动到某个div禁止滚动的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下项目中碰到一个场景就是当鼠标滑倒某个div的时候&#xff0c;滑动鼠标页面不再滚动。这里主要是当鼠标滑动到该div时&#xff0c;监听滚轮事件并通过preventDefa…

android app应用后台休眠,安卓手机锁屏后程序自动关闭,怎么设置手机app允许锁屏后台运行...

原标题&#xff1a;安卓手机锁屏后程序自动关闭&#xff0c;怎么设置手机app允许锁屏后台运行安卓手机锁屏后&#xff0c;很多程序就会自动关闭&#xff0c;实际上&#xff0c;这是安卓手机的一种保护机制。为了使系统能够流畅稳定的运行以及更加省电&#xff0c;它都会在手机锁…

ps怎么清屏_黑洞PS大赛刷屏!最后一张扎心了……

事件视界望远镜(EHT)项目组和中国科学院共同在上海天文台发布由EHT“拍下”的人类历史上首张黑洞照片这意味着人类成功获得了超大黑洞的第一个直接视觉证据黑洞首次露出真容&#xff01;据说宇宙诞生了138亿年年龄最大的黑洞也已经超过了100亿岁经过了这么久黑洞家族的成员才终…

linux和windows和鸿蒙,linux很好,但为何大家都用Win,鸿蒙系统站错阵营了吗?

原标题&#xff1a;linux很好&#xff0c;但为何大家都用Win&#xff0c;鸿蒙系统站错阵营了吗&#xff1f;由目前已知信息可知&#xff0c;华为“鸿蒙系统”很可能基于linux开源程序搭建&#xff0c;这个特点与苹果微软由很大不同。苹果手机目前主要使用Objective-C程序语言开…

centos7磁盘逻辑分区命令_CentOS7 磁盘分区(主分区、扩展分区和逻辑分区)的创建、挂载与删除...

创建磁盘分区查看磁盘分区情况&#xff1a;fdisk -l[rootmodel ~]# fdisk -l //查看系统中所有磁盘的分区列表Disk/dev/sda: 107.4 GB, 107374182400 bytes, 209715200sectorsUnits sectors of 1 * 512 512bytesSector size (logical/physical): 512 bytes / 512bytesI/O size…

php使用webservivce_JWS服务开发使用指南

均支持该版本&#xff0c;主要你的web.xml文件中必须制定2.5版本xmlversion"1.0"encoding"UTF-8"?><web-appxmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns"http://java.sun.com/xml/ns/javaee"xmlns:web"ht…

android sdk是灰的,Android Studio 2.3 sdk管理器标签灰显

Android Studio 2.3 - >配置 - > SDK管理器。 这些选项卡呈灰色显示&#xff1a; SDK工具&#xff0c;SDK更新站点。此外&#xff0c;“Show Package Details”复选框呈灰色。 系统正常更新。没有错误消息。Android Studio 2.3 sdk管理器标签灰显我认为这发生在Studio 2.…

android layer阴影,Android Layer-List实现自定义Shape阴影

一、给右侧和底层加阴影android:left"2dp"android:top"2dp">android:angle"270"android:endColor"#0F000000"android:startColor"#0F000000" />android:bottomLeftRadius"6dip"android:bottomRightRadius&q…

localdatetime 默认时间_java中的时间与时区:LocalDateTime和Date

LocalDateTimeLocalDateTime本身不包含时区信息&#xff0c;它存储的是年、月、日、时分秒&#xff0c;纳秒这样的数字。在不同的时区下&#xff0c;这样的数字代表不同的时间。比如一个LocalDateTime存储2020-01-01 08&#xff1a;00&#xff1a;00&#xff0c;这里省略纳秒。…

html 拖拽坐标,Html+css实现拖拽导航条

div横向拖拽排序body, div {padding: 0px;margin: 0px;}.box {position: relative;margin-left: 15px;padding: 10px;padding-right: 0px;width: 810px;border: blue solid 1px;}.box ul{list-style: none;overflow: hidden;padding: 0;margin:0;}.drag {float: left;border: #…

seata 如何开启tcc事物_微服务分布式事务4种解决方案实战

分布式事务分布式事务是指事务的参与者&#xff0c;支持事务的服务器&#xff0c;资源服务器分别位于分布式系统的不同节点之上&#xff0c;通常一个分布式事物中会涉及到对多个数据源或业务系统的操作。典型的分布式事务场景&#xff1a;跨银行转操作就涉及调用两个异地银行服…

python redis 哨兵_Redis哨兵机制

概述上篇文章主要说了Redis 复制的内容&#xff0c;但 Redis 复制有一个缺点&#xff0c;当主机 Master 宕机以后&#xff0c;我们需要人工解决切换&#xff0c;比如使用slaveof no one 。实际上主从复制并没有实现&#xff0c;高可用&#xff0c; 高可用侧重备份机器&#xff…

labview自动生成html,使用LabVIEW实现网页数据提取及交互.pptx

使用 LabVIEW 控制IE或WebBrowser实现网页数据的提取和交互By GSD&#xff1a;attraction - 张生斌2013.1.11可能会遇到的问题网页能否被程序控制&#xff0c;程序和网页如何通信&#xff1f;如何下载网页中我们所关注的数据&#xff1f;如何用程序修改网页中表单的内容&#x…

pdf python定位_如何使用PyPDF2获取PDF定位

我正在使用Python/Django。PyPDF2阅读我目前的pdf。如何使用PyPDF2获取PDF定位我想阅读我已经保存的pdf文件&#xff0c;并获得pdf内单页的方向。我期望能够确定页面是横向还是纵向。tempoutpdffilelocation settings.TEMPLATES_ROOT nameOfFinalPdfpageOrientation pageToE…

android 内容显示栏,android – 在工具栏下显示内容

您好我试图简单地将我的内容放在工具栏下面,但是当我运行我的应用程序时,当它应该低于它时,一些内容隐藏在它后面.我已经阅读了关于使用框架布局来尝试将其分开但我已经陷入困境.我目前正在使用随软件提供的基本android studio导航抽屉模板,并想知道我必须做出哪些更改.我的协调…

ios nslog 例子_iOS 典型内存泄露案例 - zhenshan2013的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

最近进行iOS 安全黑匣子的测试,在Demo中通过不断的点击调加密接口,同时通过苹果自带instrument的leak工具监控,发现典型的内存泄漏,监控图如下:上图中红色的部分表示该操作触发的代码有内存泄漏的可能,于是拿出源代码来研究一番,源代码如下://加密接口-(IBAction)encrypt:(id)s…

HTML饼状图中心添加文字,echarts饼状图环形中间动态文字

let currName "";let myChart echarts.getInstanceByDom(document.getElementById(‘chart-panel‘));//console.log(myChart);myChart.on(‘mouseover‘, (params) >{currNameparams.name;console.log(params)let opmyChart.getOption();let _label{normal:{sho…

pos共识机制_OK区块链60讲 | 第17集:什么是PoS共识机制

什么是PoS共识机制https://www.zhihu.com/video/1196092110837805056《OK区块链60讲》是由OKEx&#xff06;新浪科技联合出品的区块链科普动画视频&#xff0c;针对区块链零基础用户&#xff0c;通过系列文章、科普动画等形式&#xff0c;从概念、技术、应用等角度&#xff0c;…

html溢出左右滚动,html-选项卡溢出时水平滚动

我在容器中有一个基本表。 该表将包含约25列。 我正在尝试在表格溢出时添加水平滚动条&#xff0c;现在过得很艰难。现在正在发生的情况是&#xff0c;表格单元格通过自动调整单元格的高度并保持固定的表格宽度来容纳单元格的内容。对于我的方法为何无法解决此问题的建议&#…