通话期间禁用屏幕

时间:2015-04-09 17:38:14

标签: c++ screen qml blackberry-10

我正在使用BB10应用程序,该应用程序需要禁用屏幕,就像在通话过程中将屏幕靠近脸部一样。我为detect when the screen should be disabled or enabled实施了一个接近传感器,但BB10的API似乎没有提供一种打开或关闭屏幕的方法。

我可以使用什么来禁用和重新启用屏幕?

1 个答案:

答案 0 :(得分:1)

您可以通过在QML文件的最外层Container周围添加Container并将其background设置为Color.Black来解决此问题。然后将id添加到以前最外层Container并实施onScreenEnabled(enabled)函数以显示或隐藏它。

Container {
    background: Color.Black

    Container {
        id: callContainer

        ...
    }
}

function onScreenEnabled(enabled) {
    callContainer.visible = enabled;
}

在.cpp文件中,使用接近传感器的读数发出信号以启用或禁用屏幕:

void CallProgress::checkReading() {
    bool isClose = proximitySensor->reading()->close();
    this->SetScreenEnabled(!isClose);
}

void CallProgress::SetScreenEnabled(const bool enabled) {
    emit screenEnabled(enabled);
}

将信号和函数声明添加到.h文件中。在.qml文件中,将发出的信号连接到相应的QML函数。

只要接近传感器的读数检测到用户靠近屏幕,这将隐藏UI。