我正在使用BB10应用程序,该应用程序需要禁用屏幕,就像在通话过程中将屏幕靠近脸部一样。我为detect when the screen should be disabled or enabled实施了一个接近传感器,但BB10的API似乎没有提供一种打开或关闭屏幕的方法。
我可以使用什么来禁用和重新启用屏幕?
答案 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。