@TargetApi(19)和CaptioningManager

时间:2014-02-20 14:27:58

标签: android

我正在开发一个我使用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),这个问题将得到解决,但是我无法修复它。

提前致谢。

1 个答案:

答案 0 :(得分:3)

@TargetApi注释用于抑制Lint 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;
}