Android得到已安装的应用程序信息!

简介:

很久没有更新了,不知道是不是真的很忙!最近在参加2010中国十大杰出IT博客大赛,望大家还是给投一票哦! 

在做一个应用时需要查询已经安装了的应用程序图标。

实际上在Android中可以获得已经安装的应用程序的各种信息(虽然在我的应用程序中只需要获得ICON即可),比如:名称,版本,包等,不仅仅只是图标。

首先,可以创建一个用于存放应用程序信息的类结构。代码如下:

 
  1. class AppInfo {  
  2.     private int versionCode = 0;    
  3.     //名称 
  4.     private String appname = "";   
  5.     //包 
  6.     private String packagename = "";   
  7.     private String versionName = "";  
  8.     //图标 
  9.     private Drawable appicon = null;    

然后可以通过getPackageManager()函数获得PackageManager对象,而PackageManager中提供了getInstalledPackages函数可以获得已经安装的应用程序包。会返回所有已经安装的应用程序的列表。

然后通过如下代码取出所需要的信息即可。

 
  1. ArrayList<AppInfo> appList = new ArrayList<AppInfo>();           
  2. List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);   
  3. for(int i=0;i<packages.size();i++) {   
  4.     PackageInfo packageInfo = packages.get(i);     
  5.     AppInfo tmpInfo = new AppInfo();   
  6.     tmpInfo.appname = packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();   
  7.     tmpInfo.packagename = packageInfo.packageName;   
  8.     tmpInfo.versionName = packageInfo.versionName;   
  9.     tmpInfo.versionCode = packageInfo.versionCode;   
  10.     tmpInfo.appicon = packageInfo.applicationInfo.loadIcon(getPackageManager());   
  11.     appList.add(tmpInfo);   

需要注意:getInstalledPackages函数将会获得所有已经安装的应用程序,包括系统应用程序,如果要过滤系统应用程序,可以通过“packageInfo.versionName == null”来判断。




本文转自 yarin 51CTO博客,原文链接:http://blog.51cto.com/yarin/451497,如需转载请自行联系原作者

相关文章
|
2天前
|
搜索推荐 Java Android开发
打造个性化安卓应用:从设计到发布的全程指南
【9月更文挑战第15天】本篇文章将带领读者踏上一段激动人心的旅程,从构思一个独特的安卓应用想法开始,直至将其变为现实并成功发布。我们将一起探索如何捕捉灵感、设计界面、编写代码以及最终将应用推向市场。无论你是编程新手还是有经验的开发者,这篇文章都将为你提供宝贵的洞见和实用的技巧,让你的应用在竞争激烈的市场中脱颖而出。
26 17
|
7天前
|
开发框架 Android开发 iOS开发
探索安卓与iOS开发的差异:构建未来应用的指南
在移动应用开发的广阔天地中,安卓与iOS两大平台各占半壁江山。本文将深入浅出地对比这两大操作系统的开发环境、工具和用户体验设计,揭示它们在编程语言、开发工具以及市场定位上的根本差异。我们将从开发者的视角出发,逐步剖析如何根据项目需求和目标受众选择适合的平台,同时探讨跨平台开发框架的利与弊,为那些立志于打造下一个热门应用的开发者提供一份实用的指南。
18 5
|
5天前
|
Android开发 开发者 Kotlin
告别AsyncTask:一招教你用Kotlin协程重构Android应用,流畅度飙升的秘密武器
【9月更文挑战第13天】随着Android应用复杂度的增加,有效管理异步任务成为关键。Kotlin协程提供了一种优雅的并发操作处理方式,使异步编程更简单直观。本文通过具体示例介绍如何使用Kotlin协程优化Android应用性能,包括网络数据加载和UI更新。首先需在`build.gradle`中添加coroutines依赖。接着,通过定义挂起函数执行网络请求,并在`ViewModel`中使用`viewModelScope`启动协程,结合`Dispatchers.Main`更新UI,避免内存泄漏。使用协程不仅简化代码,还提升了程序健壮性。
14 1
|
16天前
|
存储 XML API
安卓应用程序开发:从新手到专家的旅程
【8月更文挑战第33天】在这篇文章中,我们将一起踏上一段激动人心的旅程,探索如何从一个对安卓应用程序开发一无所知的新手,成长为一个能够独立开发复杂应用程序的专家。我们将通过实际案例和代码示例,深入理解安卓开发的各个方面,包括用户界面设计、数据存储、网络通信等。无论你是刚刚入门,还是已经有一些基础,这篇文章都将为你提供宝贵的知识和技能,帮助你在安卓开发的道路上更进一步。
|
12天前
|
XML Java Android开发
探索Android开发之旅:打造你的第一个应用
【9月更文挑战第4天】在这篇专为初学者设计的文章中,我们将一起踏上激动人心的Android开发之旅。从设置开发环境到实现一个简单的“Hello World”应用,每一步都充满了发现和学习。文章将引导你理解Android开发的基础知识,并鼓励你动手实践。让我们开始吧,创造你的第一款Android应用,开启技术世界的新篇章!
|
15天前
|
存储 缓存 搜索推荐
打造个性化天气应用:Android 平台上的天气预报小助手
【9月更文挑战第2天】在这篇文章中,我们将一起探索如何从零开始构建一个简单却功能强大的天气应用。通过这个指南,你将学会如何在 Android 平台上使用 Java 编程语言和相关 API 来创建你自己的天气预报小助手。文章不仅提供了代码示例,还深入讨论了设计思路、用户界面优化以及数据管理等关键方面,旨在帮助初学者理解并实现一个完整的应用项目。
|
17天前
|
搜索推荐 IDE 开发工具
打造个性化安卓应用:从零开始的Flutter之旅
在数字时代的浪潮中,拥有一款个性化且高效的移动应用已成为许多创业者和企业的梦想。本文将引导你使用Flutter框架,从零基础开始构建一个安卓应用,不仅涉及界面设计、功能实现,还包括性能优化的关键技巧。通过简洁易懂的语言和实用的代码示例,我们将一起探索如何让你的应用在众多竞争者中脱颖而出。 【8月更文挑战第31天】
|
17天前
|
存储 开发工具 Android开发
打造你的专属安卓应用:从零开始的Flutter之旅
【8月更文挑战第31天】在数字时代的浪潮中,拥有一款属于自己的应用不仅是梦想的启航,也是技术实力的展现。本文将引导你使用Flutter框架,轻松步入安卓应用的开发世界。无论你是编程新手还是希望拓展技能边界的开发者,跟随这篇指南,你将学会如何搭建开发环境、设计用户界面,并实现基本功能。让我们一起探索代码的力量,开启一段创造之旅吧!
|
17天前
|
移动开发 搜索推荐 开发工具
打造个性化安卓应用:从零开始的Flutter之旅
【8月更文挑战第31天】探索Flutter,一个革命性的UI工具包,它让开发者能够使用一套代码库构建美观、快速的原生应用。本篇文章将带你领略Flutter的魅力,通过实际示例揭示如何快速搭建一个安卓应用。无论你是新手还是有经验的开发者,这篇文章都将为你提供价值。