Um die Nähe des Benutzers vom Telefon zu ermitteln, können Sie eine QProximitySensor verwenden.
Um dies zu nutzen, müssen Sie diese Zeilen zu Ihrem Projekt .pro-Datei hinzuzufügen:
CONFIG += mobility
MOBILITY += sensors
hinzufügen die notwendige umfasst zum CPP und H-Dateien:
#include <QtSensors/QProximitySensor>
using QtMobility::QProximitySensor;
#include <QtSensors/QProximityReading>
using QtMobility::QProximityReading;
Definieren Sie den Näherungssensor in der .h-Datei. Erstellen und zerstören Sie den Sensor in Ihren Konstruktor- und Destruktorfunktionen.
Wenn der Anruf beginnt, readingChanged
Funktion zum einen Ihre Sensors verbinden, die Sie beabsichtigen, das Lesen zu handhaben, und aktivieren:
connect(proximitySensor, SIGNAL(readingChanged()), this, SLOT(checkReading()));
proximitySensor->setActive(true);
Wenn der Anruf beendet, deaktivieren Sie den Sensor:
proximitySensor->setActive(false);
Verwenden Sie schließlich die Funktion close
des Lesens, um festzustellen, ob sich das Gerät in der Nähe des Gesichts des Benutzers befindet. Beachten Sie, dass die als "nah" definierte Entfernung für verschiedene Geräte unterschiedlich sein kann.
bool isClose = proximitySensor->reading()->close();
Alternativ, wenn Sie auf Änderungen an der Lesung handeln wollen nicht, können Sie das readingChanged
Signal Anschluss überspringen und die close
Funktion unabhängig verwenden.