我正在使用API 19和隐藏式字幕功能的应用程序上工作,但并非我的所有设备都安装了Kit kat,因此,当我使用此API时,我会这样说:
@TargetApi(19)
private Boolean getStateAndroidCC()
{
CaptioningManager captioningManager = (CaptioningManager) context.getSystemService(
Context.CAPTIONING_SERVICE);
return captioningManager.isEnabled();
}
但是,当我运行该应用程序并检查Logcat的控制台时,我看到以下行:
**找不到类'android.view.accessibility.CaptioningManager'
你能帮我解决这个问题吗?
因为我读到如果使用此标记@TargetApi(19),此问题将得到解决,但我无法解决。
提前致谢。
最佳答案
@TargetApi
注释用于禁止Lint API检查,因此不会出现编译错误。
这意味着:我知道我正在调用一个API,该API可能并非在所有设备上都可用,并且我正在正确处理它。
因此,在调用有问题的API之前,您必须检查是否正在运行Kitkat:
@TargetApi(19)
private Boolean getStateAndroidCC()
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
CaptioningManager captioningManager = (CaptioningManager) context.getSystemService(
Context.CAPTIONING_SERVICE);
return captioningManager.isEnabled();
}
return false;
}