通过chrome.system.display.setDisplayProperties

时间:2018-02-06 18:07:09

标签: javascript google-chrome google-chrome-app

我正在使用Chrome操作系统设备进行数字标牌。我有一个全屏Kiosk应用程序,我把它放在一起用于我们的标牌。我们的一些电视默认为1280x800分辨率(但支持1920x1080)。要解决此问题,我们必须登录Chrome操作系统并重置解决方案。有时,由于未知原因,Chrome操作系统会恢复为720p分辨率。我发现Chrome OS api现在支持通过system.display.setDisplayProperties(https://developer.chrome.com/apps/system_display#method-setDisplayProperties)设置分辨率。

但是,文档不明确:我设法实际更改了分辨率,但Chrome OS会显示一条消息,询问我是否要接受分辨率更改。从理论上讲,我无法点击“接受”,因为在大多数情况下,Chromebox无法访问且没有鼠标/键盘。

我正在使用此代码检查启动时的分辨率:

chrome.system.display.getInfo(function (display_properties) {
    let width = display_properties[0].bounds.width;
    let height = display_properties[0].bounds.height;
    let id = display_properties[0].id;
    let mode = display_properties.mode;
    let displayOptions = {
        "displayMode": {
            "width": 1920,
            "height": 1080,
            "widthInNativePixels": 1920,
            "heightInNativePixels": 1080,
            "uiScale": 1,
            "deviceScaleFactor": 1,
            "isNative": true,
            "isSelected": true
        }
    };

    if (width !== 1920 || height !== 1080) {
        chrome.system.display.setDisplayProperties(id, displayOptions, function() {
            console.log("error setting res:", chrome.runtime.lastError);
        });
    } 
});

此代码完美无瑕。但是,Chrome OS的INSIDE我收到消息,要求我接受更改分辨率。在Kiosk模式下,我没有看到任何东西(Kiosk应用程序是全屏我假设它正在隐藏它) - 它会改变分辨率并在大约15秒后恢复到旧分辨率。

关于如何处理此问题的建议?

1 个答案:

答案 0 :(得分:1)

通过Google确认这是一个已修复的已知错误: https://bugs.chromium.org/p/chromium/issues/detail?id=499904#c53