在通话过程中禁用屏幕

Disable screen during call

本文关键字:屏幕 过程中      更新时间:2023-10-16

我正在开发一款BB10应用程序,该应用程序需要禁用屏幕,就像在通话时将屏幕紧贴面部一样。我实现了一个接近传感器来检测何时应该禁用或启用屏幕,但BB10的API似乎没有提供打开或关闭屏幕的方法。

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

您可以通过在QML文件中最外层的Container周围添加Container并将其background设置为Color.Black来解决此问题。然后在原来最外层的Container上添加一个id,并实现一个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。