[英]How to get minimum sdk version(minSdkVersion) at runtime?
我想获得用于在运行时构建应用程序的minSdkVersion
。 我尝试使用以下代码。
getPackageManager().getPackageInfo(context.getPackageName(), 0).applicationInfo.targetSdkVersion
在文档中提到了targetSdkVersion
,并附有注释The minimum SDK version this application targets.
. 但它提供了运行应用程序的当前版本。
是否有任何预定义的方法可以获取minSdkVersion
? (或)是否有可能获得minSdkVersion
?
如果你愿意,你也可以在你的 gradle 中声明它,比如:
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
versionCode 5
versionName "some name"
applicationId "com.myapp"
buildConfigField "int", "MIN_SDK_VERSION", "$minSdkVersion.apiLevel"
}
然后在你的代码中你只需要得到它:
BuildConf.MIN_SDK_VERSION
targetSdkVersion :此应用程序针对的最低 SDK 版本
int targetSdkVersion= 0;
IPackageManager manager = AppGlobals.getPackageManager();
try {
ApplicationInfo applicationInfo = manager.getApplicationInfo(appName, 0);
if (applicationInfo != null) {
targetSdkVersion= applicationInfo.targetSdkVersion;
}
}
您可以获得更多信息https://developer.android.com/reference/android/content/pm/ApplicationInfo.html#targetSdkVersion
@PedroAGSantos 的回答不是 100% 正确,我们需要使用 minSdkVersion 的 apiLevel 属性,我们不需要额外的引号。 这是更正的版本:
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
versionCode 5
versionName "some name"
applicationId "com.myapp"
buildConfigField "int", "MIN_SDK_VERSION", "$minSdkVersion.apiLevel"
}
这是在运行时获取最低 SDK 和目标 SDK 版本的方法
PackageManager packageM = getPackageManager();
String packageName = getPackageName();
int targetVersion = 0, minVersion = 0;
PackageInfo info = null;
try {
info = packageM.getPackageInfo(packageName, 0);
ApplicationInfo applicationInfo = info.applicationInfo;
targetVersion = applicationInfo.targetSdkVersion;
minVersion = applicationInfo.minSdkVersion;
......
}
catch (Exception ex)
{
}
短路方式:
int minimumSDK = getApplicationContext().getApplicationInfo().minSdkVersion;
int targSDK = getApplicationContext().getApplicationInfo().targetSdkVersion;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.