繁体   English   中英

如何在运行时获取最低 sdk 版本(minSdkVersion)?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM