从屏幕检测用户接近度

时间:2015-04-09 17:33:22

标签: c++ blackberry-10 proximity

我正在开发一个BB10应用程序,当用户在通话期间将电话握在他/她的脸上时,该应用程序需要能够disable the screen

如何确定用户何时将手机拿到他/她的脸上?

1 个答案:

答案 0 :(得分:3)

要检测用户与手机的距离,您可以使用QProximitySensor

为了使用它,您需要将这些行添加到项目的.pro文件中:

CONFIG += mobility
MOBILITY += sensors

将必要的包含添加到.cpp和.h文件中:

#include <QtSensors/QProximitySensor>
using QtMobility::QProximitySensor;

#include <QtSensors/QProximityReading>
using QtMobility::QProximityReading;

在.h文件中定义接近传感器。在构造函数和析构函数中创建和销毁传感器。

当通话开始时,将传感器的readingChanged功能连接到您要处理读数的功能,然后将其激活:

connect(proximitySensor, SIGNAL(readingChanged()), this, SLOT(checkReading()));
proximitySensor->setActive(true);

当通话结束时,停用传感器:

proximitySensor->setActive(false);

最后,使用阅读的close功能来判断设备何时靠近用户的脸部。请注意,对于不同的设备,定义为“关闭”的距离可能不同。

bool isClose = proximitySensor->reading()->close();

或者,如果您不想对更改读数进行操作,则可以跳过连接readingChanged信号并单独使用close功能。