我创建了安卓应用程序,它与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
}