Android SDK版本号与API Level及VERSION_CODE的对应关系

Platform Version API Level VERSION_CODE
Android 9.0 28 P
Android 8.1 27 O_MR1
Android 8.0 26 O
Android 7.1, 7.1.1 25 N_MR1
Android 7.0 24 N
Android 6.0 23 M
Android 5.1 22 LOLLIPOP_MR1
Android 5.0 21 LOLLIPOP
Android 4.4W 20 KITKAT_WATCH
Android 4.4 19 KITKAT
Android 4.3 18 JELLY_BEAN_MR2
Android 4.2, 4.2.2 17 JE
<think>好的,用户的问题是关于在Android11中获取手机页面中的软件版本号的方法。我需要结合之前提供的引用信息来回答这个问题。首先,用户提到的引用[2]中提到使用android.os.Build.VERSION.SDK_INT来获取SDK版本号,但用户现在需要的是软件版本号,这可能是指应用的版本号或者系统的版本号。根据Android开发经验,应用版本号通常是在BuildConfig或PackageManager中获取,而系统版本号则可能涉及Build类中的其他字段。接下来,我需要确认用户的具体需求。用户提到“关于手机页面中的软件版本号”,这通常指的是系统设置中的版本信息,比如Android系统版本或基带版本等。引用[3]中提到获取版本号的方法,但提供的代码片段似乎输入法服务相关,可能不太相关。因此,可能需要更准确的方法。 在Android中,系统版本号可以通过Build.VERSION.RELEASE获取,而设备的软件版本可能涉及Build.DISPLAY或Build.VERSION.INCREMENTAL。此外,应用自身的版本号则需要通过PackageInfo获取。用户的问题可能分为系统版本应用版本两种情况,需要分别说明。 另外,Android11的API级别是30,用户可能需要检查权限或适配问题。例如,访问某些系统信息可能需要特定权限,但在获取版本号时通常不需要。需要确保提供的代码示例适用于Android11,并且使用正确的方法。最后,根据用户提供的引用,引用[2]中的方法获取的是SDK_INT,即API级别,而用户可能需要的是更可读的版本字符串,如“Android11”。因此,正确的做法是使用Build.VERSION.RELEASE来获取系统版本名称,并结合Build.VERSION.SDK_INT确认API级别。对于应用版本号,则需通过PackageManager获取PackageInfo中的versionNameversionCode。总结下来,回答需要分两部分:系统版本号应用版本号,分别给出获取方法,并确保代码示例正确,符合Android11的环境。同时,可能需要提醒用户相关注意事项,比如权限或存储访问的影响。</think>在Android 11中获取软件版本号主要通过以下两种场景实现: ### 一、获取系统版本信息 1. **Android系统版本号**(如"Android 11"): ```java String osVersion = Build.VERSION.RELEASE; // 返回"11" int apiLevel = Build.VERSION.SDK_INT; // 返回30 ``` 2. **设备固件版本号**(如厂商定制版本): ```java String buildNumber = Build.DISPLAY; // 返回"RP1A.201005.004" ``` ### 二、获取应用版本信息 1. **应用版本名称**(versionName): ```java try { PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); String versionName = pInfo.versionName; // 如"1.2.0" } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } ``` 2. **应用版本代码**(versionCode): ```java int versionCode = BuildConfig.VERSION_CODE; // 直接通过BuildConfig获取 ``` ### 三、完整示例代码 ```java // 获取系统版本 String osVersion = Build.VERSION.RELEASE; int apiLevel = Build.VERSION.SDK_INT; // 获取应用版本 try { PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); String appVersion = pInfo.versionName; int versionCode = pInfo.versionCode; // 或使用BuildConfig.VERSION_CODE } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } ``` ### 注意事项 1. 系统版本信息无需特殊权限 2. Android 11(API 30)对文件访问权限有变更,但版本号获取不受影响[^2] 3. 厂商定制系统可能修改`Build.DISPLAY`字段格式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值