我正在使用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;
}

07-25 22:06