使用android.os.Build.VERSION使用远程库



我创建了安卓应用程序,它与estimote信标相连。我的项目必须使用estimote库,这个库的最小sdk设置为18,所以我整个项目的最小sdk必须是18。但我希望我的应用程序至少能在sdk 14上运行。有没有可能将我的项目最小sdk设置为14,当sdk超过18时,关闭使用此库?

解决方案

我必须使用多个apk来确定哪些设备可以下载带有estimote库的版本,哪些设备必须下载更低的api版本。更多信息:http://developer.android.com/google/play/publishing/multiple-apks.html

您可以使用以下检查:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2){
    // turn off that library here
}

如果由于某些原因无法停止库,请执行此操作。

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle instantanState) {
    .
    .
    .
    if(Build.VERSION.SDK_INT >= 18){
       // start your library here.
    }
}

请确保在调用函数之前添加@SuppressLint("NewApi"),或者您可以关闭android lint错误检查以获取新的Api功能。

当您想在应用程序中使用库时,请使用检查操作系统版本

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2){
  // use your library here
}

但不要忘记管理以前的api:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2){
  // use your library here
}
else {
  //do something else
}

最新更新