是否可以在运行时从AndroidManifest读取minSDKVersion?

时间:2015-06-27 06:37:59

标签: android

我理解不同版本之间的差异以及如何设置它们,我只想知道我是否可以在运行时实际读取最低API级别。目标API在ApplicationInfo中可用,但不是最小值。

我正在创建一个用于应用程序的库,如果在API 14及更高版本上使用该应用程序可以使事情更加方便,但是对于14之前的版本,库的用户必须手动执行操作。我想根据SDK指定的最小值来启用该功能。如果我知道最小值至少为14,那么我可以启用该功能,用户不必包含手动代码。

我不想将它建立在设备的实际版本上,因为如果我这样做并且用户允许在低于14的情况下运行,那么他将不得不围绕手动代码进行检查以查看是否他需要这样做

2 个答案:

答案 0 :(得分:1)

似乎只能在API级别24:https://developer.android.com/reference/android/content/pm/ApplicationInfo.html#minSdkVersioncontext.getApplicationInfo)。

如果您没有编写库,可以将其注入应用程序gradle脚本中的BuildConfig,以便能够读取旧设备上的值:https://stackoverflow.com/a/37555584/598520

因此,这个问题重复了How to get minimum sdk version(minSdkVersion) at runtime?

答案 1 :(得分:-1)

你可以在

的帮助下以不同的方式制作函数
int crntVer = android.os.Build.VERSION.SDK_INT;

if (crntVer >= android.os.Build.VERSION_CODES.LOLLIPOP)
{ 
           // do something for lollipop
}
else
{
          //do something for previous version...
}