如何获取Android项目的VersionName的getPackageManager()

代码笔记:

/**
     * 得到应用层序的版本名称
     *
     * @return
     */
    private String getVersionName() {

        // 用于管理安装的apk和未安装的apk
        PackageManager packageManager = getPackageManager();

        try {
            // 得到apk的功能清单文件:为了防止出错直接使用getPackageName()方法获得包名
            // packageManager.getPackageInfo("com.xuliugen.mobilesafe", 0);
            PackageInfo packageInfo = packageManager.getPackageInfo(getPackageName(), 0);

            //返回版本名称
            return packageInfo.versionName;
        } catch (NameNotFoundException e) {
            e.printStackTrace();
            return "";
        }
    }

getPackageManager()API介绍:

常用方法:

public abstract PackageManager getPackageManager()
功能:获得一个PackageManger对象  
public abstract Drawable getApplicationIcon(String packageName)
参数: packageName 包名
功能:返回给定包名的图标,否则返回null
public abstract ApplicationInfo   getApplicationInfo(String packageName, int flags)
参数:
  packagename 包名
  flags 该ApplicationInfo是此flags标记,通常可以直接赋予常数0即可
功能:返回该ApplicationInfo对象
public abstract List<ApplicationInfo>  getInstalledApplications(int flags)
参数:
  flag为一般为GET_UNINSTALLED_PACKAGES,那么此时会返回所有ApplicationInfo。我们可以对ApplicationInfo
  的flags过滤,得到我们需要的。
功能:返回给定条件的所有PackageInfo
public abstract List<PackageInfo>  getInstalledPackages(int flags)
参数如上
功能:返回给定条件的所有PackageInfo
public abstractResolveInfo  resolveActivity(Intent intent, int flags)
参数:
  intent 查寻条件,Activity所配置的action和category
  flags: MATCH_DEFAULT_ONLY    :Category必须带有CATEGORY_DEFAULT的Activity,才匹配
  GET_INTENT_FILTERS         :匹配Intent条件即可
  GET_RESOLVED_FILTER    :匹配Intent条件即可
功能 :返回给定条件的ResolveInfo对象(本质上是Activity)
public abstract  List<ResolveInfo>  queryIntentActivities(Intent intent, int flags)
参数同上
功能 :返回给定条件的所有ResolveInfo对象(本质上是Activity),集合对象
public abstract ResolveInfo  resolveService(Intent intent, int flags)
参数同上
功能 :返回给定条件的ResolveInfo对象(本质上是Service)
public abstract List<ResolveInfo> queryIntentServices(Intent intent, int flags)
参数同上
功能 :返回给定条件的所有ResolveInfo对象(本质上是Service),集合对象

PackageInfo类  

说明:手动获取AndroidManifest.xml文件的信息 。

常用字段:

public String    packageName                   包名

public ActivityInfo[]     activities                   所有<activity>节点信息

public ApplicationInfo applicationInfo       <application>节点信息,只有一个

public ActivityInfo[]    receivers                  所有<receiver>节点信息,多个

public ServiceInfo[]    services                  所有<service>节点信息 ,多个

PackageItemInfo类

说明: AndroidManifest.xml文件中所有节点的基类,提供了这些节点的基本信息:label、icon、 meta-data。它并不

直接使用,而是由子类继承然后调用相应方法。

ApplicationInfo类 继承自 PackageItemInfo

说明:获取一个特定引用程序中节点的信息。

字段说明:flags字段: FLAG_SYSTEM 系统应用程序、FLAG_EXTERNAL_STORAGE 表示该应用安装在sdcard中

常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel()

ActivityInfo类 继承自 PackageItemInfo

  

说明: 获得应用程序中或者 节点的信息 。我们可以通过它来获取我们设置的任何属性,包括

theme 、launchMode、launchmode等

常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel()

ServiceInfo 类

说明: 同ActivityInfo类似 ,同样继承自 PackageItemInfo,只不过它表示的是节点信息。

ResolveInfo类

说明:根据节点来获取其上一层目录的信息,通常是、、节点信息。

时间: 2024-10-31 21:57:27

如何获取Android项目的VersionName的getPackageManager()的相关文章

Unity中加入Android项目的Build步骤

简介: 有的项目需要在Android中加入Unity功能,例如ANDROID应用中嵌入Unity3D视图(展示3D模型) 有的项目需要在Unity中加入Android功能,例如3D语音天气球(源码分享)——创建可旋转的3D球 由于Android中的功能和代码只能当作一个Unity插件,需要在Unity进行最终的Build后生成apk文件运行. 所以无论上面两种情况都涉及了在Unity中加入Android项目的Build步骤: 步骤: 1.确保Android工程代码正确,然后在Eclipse中bu

Xamarin如何生成Android项目的APK

Xamarin如何生成Android项目的APK 首先需要选择Release模式生成项目.然后从“生成”菜单中选择Export Android Package命令,就可以导出APK包.APK保存在Android项目文件夹的bin\release目录中.

【转】 Android项目的mvc模式

MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器.一个逻辑模型M可以对于多种视图模型V,比如一批统计数据你可以分别用柱状图.饼图V来表示.一种视图模型V也可以对于多种逻辑模型M.使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,而C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,这与<设计模式>中的观察者模式是完全一样. MVC好处:MVC把应用程序的逻辑层与界面是完全分开的,最大的好处是:界面设计

获取apk项目的MD5值和SHA1值

一些可说可不说的话: * 以前有一个更简单的方法,在as的右边工具栏的 gradle 面板中可以很方便的获取到: * 上次用也是在2年前,时间长了给忘记了,不过我记得我当时写了笔记,这会笔记不在身边,也没法查找: * 就直接百度了一个方法,在这里记录一下,等改天我找到以前写的笔记,会分享出来: 命令: C:\Users\Administrator\.android>keytool -v -list -keystore 项目签名文件全名的绝对路径 打开as的 Terminal 面板,输入命令: C

android项目的.gitignore配置

往github上传代码的时候,很多文件没必要都传,这就需要在.gitignore文件里配置一下过滤规则.在此记录一下各种项目的配置参数,先从最近做的android开始. eclipse: .idea/**/* Android项目: # Built application files *.apk *.ap_ # Files for the Dalvik VM *.dex # Java class files *.class # Generated files bin/ gen/ # Gradle

Eclipse中将一个android项目当做另外一个android项目的library

1.右击将要被当做library的项目->Properties里面->Android->给Is Library前面的checkbox打上勾->点击Apply->点击OK 2.右击需要library的项目->Properties->Android->点击Add->弹出对话框选择library点击OK->点击Apply->点击OK 将上一个项目作为library添加进来后,会发现在该项目Android Dependencies这个library

eclipse修改android项目的apk包名类名

在Google提供的Eclipse集成开发环境adt-bundle下修改名称的总结: 1.      修改工程名(apk名称) 在弹出的对话框中输入新名称 该操作实际上是修改<project>/.project下的<name>节点.但由于某种原因,只修改该文件的话,在adt-bundle中,显示的工程名称仍然为老名称,只是apk的名称变为了新名称,因此建议通过"重构"的方式为工程改名. 2.      修改手机上<桌面名称> 3.      修改在手

android入门_采用android-async-http开源项目的GET方式或POST方式实现登陆案例

09_android入门_采用android-async-http开源项目的GET方式或POST方式实现登陆案例

关于获取Android系统所有已安装App信息的一些操作(详细)

转载请注明出处:http://blog.csdn.net/qinjuning       本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下:  第一部分: 获取应用程序的packagename.label.icon等 :             第二部分:获取应用程序的占用大小,包括:缓存大小(cachsize).数据大小(datasize). 每部分都为您准备了简单丰富的实例,您一定不会错过.