在通话过程中禁用屏幕
Disable screen during call
我正在开发一款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。
相关文章:
- 是否删除在对象构造过程中创建的对象
- 如何在鼠标挂钩过程中检测拖动
- clang 插件:在编译过程中修改 AST
- Adafruit 羽毛RFM69HCW在使用过程中会冻结,需要硬重置
- 线程过程中的线程同步问题
- MySQL 连接器/C++.尝试在此过程中停止连接到数据库
- C++ 在编译过程中 strtok 函数 Eclipse 说没有在范围内声明?
- 在调用过程中删除 std::函数
- 动态矩阵特征分解过程中的误差
- cmake在构建过程中使用另一个工具检测标志
- 在模板参数推导过程中丢失限定符
- 升压过程中的管道缓冲区大小
- 如何在插入过程中更改插入的值
- 在PostgreSQL函数或过程中使用C++代码
- Vulkan:设备在缓冲区复制过程中丢失
- 如何解决导入dll过程中Viual Studio中的并排配置错误
- C++:如何在对象构造过程中调用初始值设定项列表之外的成员构造函数
- 在通话过程中禁用屏幕
- 在 C/C++ 中读取/写入屏幕过程
- 在递归函数中,c++基转换过程中意外输出到屏幕