我想在运行时使用minSdkVersion
来构建应用程序。我尝试使用以下代码。
getPackageManager().getPackageInfo(context.getPackageName(), 0).applicationInfo.targetSdkVersion
在文档中,targetSdkVersion
与评论The minimum SDK version this application targets.
一起提及。但它提供了运行应用程序的当前版本。
是否有任何预定义方式可用于获取minSdkVersion
? (要么)
是否有任何黑客可以获得minSdkVersion
?
答案 0 :(得分:8)
如果您愿意,也可以在您的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
答案 1 :(得分:3)
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
答案 2 :(得分:2)
@ PedroAGSantos的答案不是100%正确,我们需要使用minSdkVersion的apiLevel属性,我们不需要额外的引号。这是更正后的版本:
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
versionCode 5
versionName "some name"
applicationId "com.myapp"
buildConfigField "int", "MIN_SDK_VERSION", "$minSdkVersion.apiLevel"
}