我正在开发一个BB10应用程序,当用户在通话期间将电话握在他/她的脸上时,该应用程序需要能够disable the screen。
如何确定用户何时将手机拿到他/她的脸上?
答案 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
功能。