功能:獲取版本號
思路:版本號位置在AndroidManifest.xml文件中,需要找到一個類可以獲取該位置的信息
需要使用到getPackageInfo和 PackageManager 這兩個類。
一、getPackageInfo介紹和用法
介紹:PackageInfo類封裝了從配置文件(AndroidManifest.xml)中獲取的所有信息,描述了包內容的整體信息。
Overall information about the contents of a package. This corresponds to all of the information collected from AndroidManifest.xml.
二、PackageManager介紹和用法
介紹:PackageManager是一個檢索當前已安裝在設備上的相關應用程序包的各種信息的類。
Class for retrieving various kinds of information related to the application
packages that are currently installed on the device. You can find this class
through Context.getPackageManager
使用方法:
1.PackageManager對象的獲取,Context對象提供了getPackageManager()方法。
2.getPackageInfo方法獲取PackageInfo對象,該方法需要傳遞兩個參數:應用包名packageName 和條件flags。
packageName :The full name (i.e. com.google.apps.contacts) of the desired package.
flags: Additional option flags. Use any combination of GET_ACTIVITIES
,
GET_GIDS
,
GET_CONFIGURATIONS
,
GET_INSTRUMENTATION
,
GET_PERMISSIONS
,
GET_PROVIDERS
,
GET_RECEIVERS
,
GET_SERVICES
,
GET_SIGNATURES
,
GET_UNINSTALLED_PACKAGES
to modify the data returned.
代碼書寫流程:
使用Context.getPackageManager獲取PackageManager對象
使用PackageManager對象的getPackageInfo方法獲取PackageInfo對象
獲取PackageInfo的屬性versionCode 或者其他信息
/** * 獲取版本號 * * @return 當前應用的版本名 */ public int getVersion() { try { PackageManager manager = this.getPackageManager(); PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0); String version = info.versionName;//版本的名稱 用于顯示在welcome界面下角 int versionCode = info.versionCode;//版本的code 用于比較升級 return versionCode; } catch (Exception e) { e.printStackTrace(); return 0; } }
參考文章:
http://www.cnblogs.com/yeahui/archive/2012/10/20/2732429.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。