Per rilevare la vicinanza dell'utente dal telefono, è possibile utilizzare uno QProximitySensor.
Per poter utilizzare questo, è necessario aggiungere queste righe nel file .pro del progetto:
CONFIG += mobility
MOBILITY += sensors
Aggiungere la necessaria include al cpp e .h:
#include <QtSensors/QProximitySensor>
using QtMobility::QProximitySensor;
#include <QtSensors/QProximityReading>
using QtMobility::QProximityReading;
Definire il sensore di prossimità nel file .h. Crea e distruggi il sensore nelle funzioni di costruttore e distruttore.
Quando la chiamata si avvia, collegare la funzione del sensore readingChanged
a quello che si intende gestire la lettura, e per attivarla:
connect(proximitySensor, SIGNAL(readingChanged()), this, SLOT(checkReading()));
proximitySensor->setActive(true);
Al termine della chiamata, disattivare il sensore:
proximitySensor->setActive(false);
Infine, utilizzare la funzione close
della lettura per indicare quando il dispositivo è vicino al viso dell'utente. Si noti che la distanza definita come "chiusa" potrebbe essere diversa per dispositivi diversi.
bool isClose = proximitySensor->reading()->close();
In alternativa, se non si vuole agire su modifiche alla lettura, è possibile saltare collegare il segnale readingChanged
e utilizzare la funzione close
in modo indipendente.