如何在运行时获得最小sdk版本(minSdkVersion)?

时间:2016-05-31 20:37:07

标签: android

我想在运行时使用minSdkVersion来构建应用程序。我尝试使用以下代码。

getPackageManager().getPackageInfo(context.getPackageName(), 0).applicationInfo.targetSdkVersion

在文档中,targetSdkVersion与评论The minimum SDK version this application targets.一起提及。但它提供了运行应用程序的当前版本。

是否有任何预定义方式可用于获取minSdkVersion? (要么) 是否有任何黑客可以获得minSdkVersion

3 个答案:

答案 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"
}