原文: https://blog.csdn.net/uyy203/article/details/73276225
在开发中 我们有时候会需要获取当前手机的系统版本来进行判断,或者需要获取一些当前手机的硬件信息。
android.os.Build类中。包括了这样的一些信息。我们可以直接调用 而不需要添加任何的权限和方法。
android.os.Build.VERSION_CODES类 中有所有的已公布的Android版本号。全部是Int常亮。可用于与SDK_INT进行比较来判断当前的系统版本
『贰』 Android获取系统(ROM)类别及版本号
很多时候我们需要知道用户当前使用的是什么系统,甚至是系统的版本号(比如MIUI V7、V8)来进一步处理业务逻辑,比如打开系统权限设置界面。
感谢国内各大Android手机/系统生产商,让我们这些Android开发者每天都乐(伤)此(心)不(欲)疲(绝)的解决这些差异化问题。
通过读取 android.os.Build.MANUFACTURER 常量来获取设备的制造商从而确定设备所使用的系统。
常用 MANUFACTURER 常量对应关系
使用示例:
总结 :此方法通常有效,因为我们通常认为小米的手机使用MIUI系统,华为的手机使用EMUI系统等这种关联关系,那么就可能存在以下情况:
当然如果还想获取系统的版本号,可能这个方法就有点无力回天了。
因此我们可以通过在文件内容中查找一些特征标识从而确定系统类别。
在对 build.prop 进一步了解的过程中,找到了别人对这一部分的具体使用和讲解,这里就不再过多阐述。
别人的使用讲解
别人封装好的工具类
总结 :此方法通常更为有效(取决于特征标识的有效性),但比方法1略复杂一些。但是此方法可能存在一个致命的问题就是可能在某些设备上你无法读取 build.prop 文件,据网上资料显示(华为mate10 及后续的一些新设备无法读取此文件)。
对于以上两种方法,方式不同,也都存在各自的短板,因此在实际生产环境中最好是根据自己的需求而定,甚至是结合两者方法的特点来实现需求,到目前为止并没有找到其它更为行之有效能够适应所有情况的获取系统类型和版本的方法,如果有,谢天谢地请您告诉我,不胜感激。
附录:
小米开发文档- 如何识别小米设备/MIUI系统 ,关于开发文档中提到的读取属性,应该是使用 SystemUtil.java 实现
更多参考资料: https://blog.csdn.net/xx326664162/article/details/52438706
『叁』 如何获取android系统当前版本
获取当前应用的版本号:
private String getVersionName() throws Exception
{
// 获取packagemanager的实例
PackageManager packageManager = getPackageManager();
// getPackageName()是你当前类的包名,0代表是获取版本信息
PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
String version = packInfo.versionName;
return version;
}
获取当前系统的版本号:
textView.setText("Proct Model: " + android.os.Build.MODEL + ","
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);
『肆』 如何获取android系统当前版本
设置中最后一项关于手机里就有当前的版本号
『伍』 android 代码如何获得版本号和版本名称
其实很简单,ANDROID系统中有1个Package
Manager,我们将利用它来完成这个任务。
PackageInfo
pkg
=
getPackageManager().getPackageInfo(getApplication().getPackageName(),
0);
String
appName
=
pkg.applicationInfo.loadLabel(getPackageManager()).toString();
String
versionName
=
pkg.versionName;
appName即是ANDROID利用的名称。versionName即是ANDROID利用当前的版本号,其对应于AndroidManifest.xml文件里的versionName属性。
『陆』 如何获取手机的android版本号
您好,根据您的需求,可以通过以下两行代码获得相关系统属性:
String
version_sdk
=
Build.VERSION.SDK;
//
设备版SDK版本权(Android版本号)
String
version_release
=
Build.VERSION.RELEASE;
//
设备的系统版本
希望能帮到您,还有什么问题欢迎您追问。谢谢。
『柒』 android怎么获取当前版本号
//获取版本名
publicstatic String getAppVersionName(Context context) {
String versionName = "";
try {
// ---get the package info---
PackageManager pm = context.getPackageManager();
PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
versionName = pi.versionName;
versioncode = pi.versionCode;
if (versionName == null || versionName.length() <= 0) {
return"";
}
} catch (Exception e) {
Log.e("VersionInfo", "Exception", e);
}
return versionName;
}
2.--------------------------------------------------------------------------
获取当前应用的版本号:
private String getVersionName() throws Exception
{
// 获取packagemanager的实例
PackageManager packageManager = getPackageManager();
// getPackageName()是你当前类的包名,0代表是获取版本信息
PackageInfo packInfo = packageManager.getPackageInfo(getPackageName(),0);
String version = packInfo.versionName;
return version;
}
『捌』 android怎么去获取版本号
获取APP版本号代码如下:
PackageManagermanager;
PackageInfoinfo=null;
manager=this.getPackageManager();
try{
info=manager.getPackageInfo(this.getPackageName(),0);
}catch(NameNotFoundExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
info.versionCode;
info.versionName;
info.packageName;
info.signatures;
这样,以上的信息就都可以获取到了。
『玖』 Android应用如何获取版本号
在检测应复用程序是否需要升级制时,首先应该获取其版本号与服务器端进行比较进行判断是否升级
Android有两个版本号标识,分别为:versionCode,(整数值代表),versionName(字符串代表)
具体方法如下:
public static int getVerCode(Context context) {
int verCode = -1;try {verCode = context.getPackageManager().getPackageInfo(
包名, 0).versionCode;
} catch (NameNotFoundException e) {
Log.e(msg, e.getMessage());}return verCode;}
public static String getVerName(Context context) {
String verName = ;try {verName = context.getPackageManager().getPackageInfo(
包名, 0).versionName;