我尝试创建一种方法,该方法返回的屏幕方向依赖项
设备是手持设备还是平板电脑。

public int getScreenOrientation(boolean isTablet){
    if(isTablet){
        return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE;
    } else {
        return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
    }
}

但是,当我使用setRequestedOrientation(getScreenOrientation));时,我得到了一个可以抑制的棉绒错误Must be one of: ActivityInfo.SCREEN_ORIENTATION_.........,但这看起来不像是干净的代码。

因此,我发现getRequestedOrientation使用了@ActivityInfo.ScreenOrientation注释。所以我尝试自己使用它:

@ActivityInfo.ScreenOrientation
public int getScreenOrientation(boolean isTablet){
    .
    .
    .
}

但是IDE给我一个错误,指出找不到注释@ActivityInfo.ScreenOrientation。但这是在Official-android-source中声明为公共(public)的。

最佳答案

将以下注释放在令人讨厌的语句之上,例如,其中会触发@IntDef and @StringDef annotation的魔术常数检查:

//noinspection ResourceType
setRequestOrientation(lock);

09-13 05:48