Android开发:教你如何获取软件自身版本号和Android系统版本号
2015-01-28 11:36
113 查看
前言
在Android软件开发过程中,版本升级常常需要得到软件版本,与服务器作对比后决定是否升级,那么如何获取软件版本呢?有时我们需要获取系统版本已决定加载合适的资源文件,系统版本又如何得到呢?假如我们不想要在系统指定的位置填写版本号,我们可以如何定义软件版本呢?又该如何获取呢?本文将一一告诉你。正文
1、布局是这样的:
有两个按钮,一个按钮获取软件版本,一个按钮获取系统版本;一个TextView显示获取到的版本号:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.getversion.MainActivity" > <TextView android:id="@+id/version" android:layout_width="fill_parent" android:layout_height="wrap_content" android:ellipsize="marquee" android:hint="@string/please_choose" android:marqueeRepeatLimit="marquee_forever" android:singleLine="true" /> <Button android:id="@+id/get_system" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/get_app" android:layout_alignBottom="@+id/get_app" android:layout_alignParentRight="true" android:text="@string/sys_version" /> <TextView android:id="@+id/get" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/get_app" android:layout_alignBottom="@+id/get_app" android:layout_alignLeft="@+id/version" android:text="@string/get" android:textSize="20sp" /> <Button android:id="@+id/get_app" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/version" android:layout_marginLeft="15dp" android:layout_marginTop="41dp" android:layout_toRightOf="@+id/get" android:text="@string/app_version" /> </RelativeLayout>
2、代码是这样滴:
/** * 获取系统版本号 */ private void getSystemVersion() { //int sysVersion = android.os.Build.VERSION.SDK_INT;//获取sdk平台值,如19 String sysVersion = android.os.Build.VERSION.RELEASE;//获取系统版本,如4.0.2 Log.d(TAG, "sysVersion="+sysVersion); setVersion(getString(R.string.sys_version)+":"+String.valueOf(sysVersion)); } /** * 获取软件版本号 */ private void getAPPVersion() { PackageManager pm = this.getPackageManager();//得到PackageManager对象 try { PackageInfo pi = pm.getPackageInfo(this.getPackageName(), 0);//得到PackageInfo对象,封装了一些软件包的信息在里面 int appVersion = pi.versionCode;//获取清单文件中versionCode节点的值 Log.d(TAG, "appVersion="+appVersion); setVersion(getString(R.string.app_version)+":"+String.valueOf(appVersion)); } catch (NameNotFoundException e) { e.printStackTrace(); Log.e(TAG, "getAppVersion:"+e.getCause()); } } /** * 设置版本号 * @param ver 版本号 */ private void setVersion(String ver){ if (ver !=null && (!"".equals(ver))) { version.setText(ver); }else { version.setText(getString(R.string.error)); } } }
现在大家该知道如何获取软件版本和系统版本了吧?那么还剩下一个问题:我们如何自定义版本号呢?
利用meta-data节点自定义版本号以及获取方法
首先在清单文件Mainfest中的Application节点下添加一个节点<meta-data>,指定android:name,android:value值即可:<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <meta-data android:name="SYSTEM_VERSION" android:value="1.0 from meta-data" /> </application>
代码中稍作修改,定义一个全局变量表示点击左边按钮的次数,基数次时显示软件标准的版本号,偶数次时,显示自定义版本号。
获取自定义版本号代码如下:
/** * 获取自定义在meta-data节点下的版本号 */ private void getCustomVersion(){ PackageManager pm = this.getPackageManager(); try { ApplicationInfo ai = pm.getApplicationInfo(this.getPackageName(), PackageManager.GET_META_DATA);//第二个参数必须是这个,否则下面报错 String customVersion = ai.metaData.getString("SYSTEM_VERSION");//获取meta-data节点下的value值 setVersion(getString(R.string.app_version)+":"+customVersion); } catch (NameNotFoundException e) { e.printStackTrace(); Log.e(TAG, "getCustomVersion:"+e.getCause()); } }
详细源码下载链接:http://download.csdn.net/detail/xiong_it/8403983 。
如若转载,还请注明出处和链接:/article/2590618.html谢谢!
相关文章推荐
- Android开发_如何获取和设置android系统铃声和音量大小
- Android开发系统工具类SysUtils:获取App版本号、SD卡目录、缓存目录、是否后台运行、前台可见
- Android开发_如何获取和设置android系统铃声和音量大小
- Android开发之获取系统版本号
- android系统如何获取imei号码,获取手机型号和系统版本号
- Android开发如何获取gradle中的版本号
- 在C#中如何获取系统中所安装的所有软件信息,还有如何打开系统中某个程序
- Android开发之系统信息——获取Android手机中SD卡内存信息
- Android编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)
- Android软件开发之盘点常用系统控件界面大合集(三)
- 转:Android编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)
- Android开发之系统信息——获取Android手机中SD卡内存信息
- android获取手机型号和系统版本号
- 如何组建和管理一个嵌入式系统软件开发团队
- Android开发之系统信息【1】——获取Android手机中SD卡存储信息
- 如何使Android应用程序获取系统权限
- Android开发之系统信息——获取Android手机中SD卡内存信息
- Android编程获取手机型号,本机电话号码,sdk版本及firmware版本号(即系统版本号)
- 如何使Android应用程序获取系统权限
- Windows XP SP3系统下如何搭建android开发环境