java实现获取安卓设备里已安装的软件包

 更新时间:2015年10月29日 11:25:29   投稿:hebedich  
本文给大家介绍的是如何获取设备中已经安装的应用软件包的代码,其核心方法原理很简单,我们通过Android中提供的PackageManager类,来获取手机中安装的应用程序信息

之前的文章向大家介绍了几个项目中常用的实用功能,那么在这篇文中,我将向大家介绍如何获取Android手机中已经安装的手机应用程序,好了,废话不多说,直接上代码

private String getInstalledAppListAsString(){
    PackageManager pm = context.getPackageManager();
    List<ApplicationInfo> apps = pm.getInstalledApplications(PackageManager.GET_GIDS);
    StringBuffer stringBuffer = new StringBuffer();
    for (ApplicationInfo app : apps) {
      if(pm.getLaunchIntentForPackage(app.packageName) != null) {
        // apps with launcher intent
        if((app.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 1) {
          // updated system apps
 
        } else if ((app.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
          // system apps
 
        } else {
          // user installed apps
          stringBuffer.append(app.packageName).append(';');
        }
      }
    }
    return stringBuffer.toString();
  }

下面我们看看具体如何获取各个应用的相关信息呢

package cn.lyz.mobilesafe.domain;

import android.graphics.drawable.Drawable;

/**
 * 获取的应用基本信息实体类
 * @author liuyazhuang
 *
 */
public class AppInfo {
	//图标
	private Drawable app_icon;
	//应用名称
	private String app_name;
	//应用版本号
	private String app_version;
	//应用包名
	private String packagename;
	//是否是用户app
	private boolean isUserApp;
	
	
	public AppInfo() {
		super();
		// TODO Auto-generated constructor stub
	}
	public AppInfo(Drawable app_icon, String app_name, String app_version,
			String packagename) {
		super();
		this.app_icon = app_icon;
		this.app_name = app_name;
		this.app_version = app_version;
		this.packagename = packagename;
	}
	
	
	public AppInfo(Drawable app_icon, String app_name, String app_version,
			String packagename, boolean isUserApp) {
		super();
		this.app_icon = app_icon;
		this.app_name = app_name;
		this.app_version = app_version;
		this.packagename = packagename;
		this.isUserApp = isUserApp;
	}
	public Drawable getApp_icon() {
		return app_icon;
	}
	public void setApp_icon(Drawable app_icon) {
		this.app_icon = app_icon;
	}
	public String getApp_name() {
		return app_name;
	}
	public void setApp_name(String app_name) {
		this.app_name = app_name;
	}
	public String getApp_version() {
		return app_version;
	}
	public void setApp_version(String app_version) {
		this.app_version = app_version;
	}
	public String getPackagename() {
		return packagename;
	}
	public void setPackagename(String packagename) {
		this.packagename = packagename;
	}
	
	public boolean isUserApp() {
		return isUserApp;
	}
	public void setUserApp(boolean isUserApp) {
		this.isUserApp = isUserApp;
	}
	
	@Override
	public String toString() {
		return "AppInfo [app_icon=" + app_icon + ", app_name=" + app_name
				+ ", app_version=" + app_version + ", packagename="
				+ packagename + ", isUserApp=" + isUserApp + "]";
	}
}

您可能感兴趣的文章:

相关文章

  • Java编程实现生成给定范围内不重复随机数的方法小结

    Java编程实现生成给定范围内不重复随机数的方法小结

    这篇文章主要介绍了Java编程实现生成给定范围内不重复随机数的方法,结合实例形式总结分析了java基于数学运算与判断实现不重复随机数的生成功能,需要的朋友可以参考下
    2017-07-07
  • Spring中ApplicationContext的拓展功能详解

    Spring中ApplicationContext的拓展功能详解

    这篇文章主要介绍了Spring中ApplicationContext的拓展功能详解,相对于BeanFactory来说,ApplicationContext除了提供BeanFactory的所有功能外,还有一些其他的功能,主要包括国际化支持、资源访问、事件传递,需要的朋友可以参考下
    2024-01-01
  • java 后台将base64字符串保存为图片的方法

    java 后台将base64字符串保存为图片的方法

    本篇文章主要介绍了java 后台将base64字符串保存为图片的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Spring中的@Qualifier注解和@Resource注解区别解析

    Spring中的@Qualifier注解和@Resource注解区别解析

    这篇文章主要介绍了Spring中的@Qualifier注解和@Resource注解区别解析,@Qualifier注解的用处是当一个接口有多个实现的时候,为了指名具体调用哪个类的实现,@Resource注解可以通过 byName命名和byType类型的方式注入,需要的朋友可以参考下
    2023-11-11
  • SpringBoot整合jasypt加密配置文件敏感信息

    SpringBoot整合jasypt加密配置文件敏感信息

    在项目中我们需要对配置文件的一些敏感信息进行加密处理,比如数据库账户密码,避免直接暴露出来,这种场景常常用于生产环境,我们不想让开发人员知道生产库的密码,有运维人员统一管理,所以本文给大家介绍了SpringBoot整合jasypt加密配置文件敏感信息
    2024-06-06
  • Spring AOP详解面向切面编程思想

    Spring AOP详解面向切面编程思想

    Spring是一个广泛应用的框架,SpringAOP则是Spring提供的一个标准易用的aop框架,依托Spring的IOC容器,提供了极强的AOP扩展增强能力,对项目开发提供了极大地便利
    2022-06-06
  • MyBatis使用自定义TypeHandler转换类型的实现方法

    MyBatis使用自定义TypeHandler转换类型的实现方法

    这篇文章主要介绍了MyBatis使用自定义TypeHandler转换类型的实现方法,本文介绍使用TypeHandler 实现日期类型的转换,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Java深入浅出讲解String类常见方法

    Java深入浅出讲解String类常见方法

    在C语言中,如果要表示字符串而且对字符串进行操作的话,依靠的是数组和指针,而Java中提供了String类用来专门表示字符串,String类中常见的方法,以及一些细节是本篇重点
    2022-04-04
  • Java Math.round(),Math.ceil(),Math.floor()的区别详解

    Java Math.round(),Math.ceil(),Math.floor()的区别详解

    这篇文章主要介绍了Java Math.round(),Math.ceil(),Math.floor()的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 详解json在SpringBoot中的格式转换

    详解json在SpringBoot中的格式转换

    这篇文章主要介绍了详解json在SpringBoot中的格式转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论