2015-04-09 18 views

risposta

3

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.