android获取系统版本号

应用场景
1、在界面中显示应用程序的版本号;
2、用户启动该应用,后台判断该应用是否是最新版本。
上述情景都需要在程序中自动获取到应用的版本号。

思路简介
在Android中,应用程序的版本号是在AndroidManifest.xml文件中进行配置的,而PackageInfo类则封装了从该配置文件中获取的所有信息,描述了包内容的整体信息,因此,可以使用PackageInfo对象的versionName属性获取应用的版本号。
要怎么获取PackageInfo对象呢?可以通过PackageManager对象来获取。PackageManager是一个检索当前已安装在设备上的相关应用程序包的各种信息的类。PackageManager对象中的getPackageInfo方法可以获取PackageInfo对象,该方法需要传递两个参数:应用包名和条件。通常情况下,应用程序的包名可以通过Activity或Context(Activity继承自Context)的getPackageName()方法获取,而添加可以有很多设置,通常设置为0。
最后是PackageManager对象的获取,Context对象提供了getPackageManager()方法来获取该对象。

综上,模板代码如下:(注意,此处封装的方法位于某个Activity中,因此直接使用this来代替Context对象)

/**
 * 获取版本号
 * @return 当前应用的版本号
 */
public String getVersion() {
    try {
        PackageManager manager = this.getPackageManager();
        PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0);
        String version = info.versionName;
        return this.getString(R.string.version_name) + version;
    } catch (Exception e) {
        e.printStackTrace();
        return this.getString(R.string.can_not_find_version_name);
    }
}

时间: 2024-10-01 04:43:04

android获取系统版本号的相关文章

Android获取系统时间方法详解

Android获取系统时间方法的方法有很多种,常用的有Calendar.Date.currentTimeMills等方法. (1)Calendar Calendar获取系统时间首先要用Calendar.getInstance()函数获取一个实例,再为该实例设定时区(中国的时区为GMT+8:00),最后使用Calendar.get()函数获取时间的具体信息,如年,月,日,小时,分,秒,星期几. package com.hzhi.time_example; import java.util.Cale

Android 获取系统相册中的所有图片

Android 提供了API可获取到系统相册中的一些信息,主要还是通过ContentProvider 来获取想要的内容. 代码很简单,只要熟悉ContentProvider 就可以了. public static List<String> getSystemPhotoList(Context context) { List<String> result = new ArrayList<String>(); Uri uri = MediaStore.Images.Medi

Android获取系统ID(com.android.internal.R)

R.id.icon 怎么获取,这个东西其实在 com.android.internal.R 这个里面,但是这个类我们访问不到怎么办? 反射呗, Java 的反射可谓是万能啊,啥都可以拿到只要他在. [java] view plaincopy Class<?> clazz = Class.forName("com.android.internal.R$id"); Field field = clazz.getField("icon"); field.set

Android 获取系统或SDCARD剩余空间信息(转)

android.os下的StatFs类主要用来获取文件系统的状态,能够获取sd卡的大小和剩余空间,获取系统内部空间也就是/system的大小和剩余空间等等.      看下读取sd卡的:Java代码 1 void readSDCard() { 2 String state = Environment.getExternalStorageState(); 3 if(Environment.MEDIA_MOUNTED.equals(state)) { 4 File sdcardDir = Envir

Android 获取系统的联系人

本文主要介绍android中怎样获取系统的联系人数据 首先打开模拟器 点击联系人图标按钮 说明系统联系人数据库是空的,打开File explorer,找到data/data下面的文件夹: 将contacts2.db文件导出,添加到sqlite中的时候报错: 点击“ok”忽略之 表结构相当的复杂,首先搞清楚其中的三张表 * data表 保存联系人的数据 * raw_contacts表 保存联系人的id contact_id * mimetypes表 保存联系人数据的类型 接下来通过模拟器添加联系人

android获取系统wifi状态等

WIFI 获取WIFI状态 WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); if(wifiManager != null){ int wifiState = wifiManager.getWifiState(); } 附:Wifi状态有以下几种:(括号内为所对应的的int值) 1. wifiManager.WIFI_STATE_DISABLED (1) 2. wifiMa

C++ 获取系统版本号

因用到系统版本号,区别对待. // 5.0 Windows 2000";    // 5.1 Windows XP";    // 5.2 Windows 2003";    // 6.0 Windows Vista";    // 6.1 Windows 7";    // 6.2 Windows 8";    // 6.3 Windows 8.1";    // 10.0 Windows 10";    //其他版本 方法

[android] 获取系统的联系人信息

内容提供是实质上是个接口,后门,他给别人提供数据,系统联系人是个比较复杂的内容通过者. 找到/data/data/com.android.providers.contacts/contacts2.db 这个目录下还有个文件contacts2.db.-journal,这个文件和数据库的事务相关 联系人应用数据库的主要结构 raw_contacts 联系人表 contact_id 联系人id data数据表  raw_contact_id联系人id,mimetype_id数据类id,data1数据

win10 系统下获取系统版本号为6.2的问题

近期赶时髦升级了win10,用着挺爽.但是某天在测试一个bug时发现要对win10做特殊处理,于是直接调用了GetVersionEx,并取出版本号进行判断,但是发现得到的版本竟然是6.2.当时就被雷到了,然后看了我们的其它产品中相关功能,皆获取的是6.2. 在搜索一会儿之后,发现这是微软故意做的设定,GetVersionEx函数可能在Win8.1之后会取消,推荐程序员们使用Version Helper APIs ,所以在8.1之后的系统中此函数的行为改变了,如果程序没有加上正确的manifest