我在将最低 API 级别设置为 7 的情况下编写了大部分应用程序。我想从级别 8 调用单个 API。如果没有此“额外功能”,使用较低版本的 android 的用户将能够生存。
目前我添加了 @SuppressLint("NewApi")
以便我的代码可以运行;我正在 API 14 上对其进行测试。一切正常。
我想知道该应用程序在 API 7 设备上的行为。这一行会被忽略吗?我的应用程序会崩溃吗?该应用会被 Google Play 过滤,因此他们无法安装吗?
我希望在低端设备上忽略这一行。
最佳答案
Would this one line be ignored?
没有。
Would my app crash?
壮观。 :-)
Would the app be filtered by Google Play so they can't install?
没有。
I'd like to have this single line ignore on lower devices.
你有两个问题:
@SuppressLint("NewApi")
是错误的快速修复选择您没有添加任何代码来避免在旧设备上出现这一行
使用 @TargetApi(...)
而不是 @SuppressLint("NewApi")
,其中 ...
是名称(例如,FROYO
) 或您的方法引用的代码的编号(例如,8
)。
但是在你这样做之前,将你的违规行包装在一个检查中,看看它们是否应该在这个设备上执行:
if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.FROYO) {
// then execute your code that requires API Level 8
}
// optional else block if you have some workaround for API Level 7
您的 if
检查将导致您的线路被避开。您的 @TargetApi
注释将导致 Lint 停止对您大喊大叫引用太新的类或方法。
关于android - 从高于最低要求的 API 级别调用 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16243744/