Senzorul de proximitate este un senzor infraroșu care detectează prezența unui obiect în fața ecranului smartphone-ului fără contact fizic. Funcția principală este de a opri afișajul în timpul unei convorbiri telefonice pentru a preveni atingerile accidentale cu obrazul și a economisi bateria. Potrivit Google Android Developer Guide, 2024, senzorii moderni de proximitate măsoară distanța de la 0 la 10 cm cu o precizie de 0.5 cm și un timp de răspuns sub 50 ms.
Principalele
Senzorul de proximitate (proximity sensor) este un senzor infraroșu fără contact situat în partea superioară a panoului frontal al smartphone-ului, lângă difuzorul de convorbire. Este format dintr-un LED infraroșu (IR LED) și un fotodetector (fotodiodă sau fototranzistor). Primul smartphone de masă cu senzor de proximitate a fost Apple iPhone (2007) — de atunci, senzorul a devenit o componentă obligatorie a tuturor telefoanelor moderne.
Senzorul este de obicei ascuns sub sticla ecranului și este vizibil doar sub un anumit unghi ca un punct mic. În modelele moderne se utilizează un modul optic cu o diagramă de direcție îngustă (15–30 de grade) pentru a exclude citirile false de la reflexiile din sticlă. Producători — Sharp, ams OSRAM (seria TMD), Silicon Labs și partenerii lor contractuali.
| Parametru | Valoare |
|---|---|
| Lungimea de undă | 850–940 nm (domeniul IR invizibil) |
| Raza de acțiune | 0–10 cm |
| Rezoluție | 0.5 cm |
| Consum | 0.3–0.7 mA |
| Timp de răspuns | 10–50 ms |
În dispozitivele mobile se utilizează senzori discreți (cip separat IR LED + fotodiodă) și module integrate (ambele elemente pe același cip). Soluțiile integrate (ams TMD2635, dimensiunea 1×1×0.5 mm) sunt utilizate în carcasele ultra-subțiri ale flagship-urilor moderne și ocupă un spațiu minim pe placă.
Principiul de funcționare al senzorului de proximitate se bazează pe măsurarea intensității radiației IR reflectate. LED-ul infraroșu emite un impuls de lumină (850–940 nm), iar fotodioda măsoară cantitatea de lumină reflectată de obiect. Dacă semnalul reflectat depășește pragul — obiectul este considerat aproape (mai puțin de 3–5 cm).
Principala problemă tehnică este lumina solară și interferențele de la alte surse IR. Soluția — modularea radiației: IR LED emite impulsuri cu frecvența de 10–100 kHz, iar fotodetectorul detectează sincron semnalul, filtrând componenta continuă. Potrivit ams Application Note AN000610 (2024), schema de detecție sincronă suprimă lumina de fond cu 40–60 dB.
Pragul de declanșare este setat de producător în etapa de calibrare și depinde de transparența sticlei ecranului. Pragul tipic — reflexia corespunde distanței de 2–4 cm. Când degetul sau urechea se află la o distanță mai mică decât pragul, senzorul returnează valoarea 0 (aproape), în caz contrar — valoarea maximă a domeniului (8–10 cm în funcție de model).
Senzorul de proximitate (IR proximity) măsoară intensitatea reflexiei — un senzor binar cu două stări. Time-of-Flight (ToF) măsoară timpul de parcurs al luminii până la obiect și înapoi, ceea ce permite determinarea precisă a distanței până la câțiva metri. În dispozitivele mobile, senzorii ToF (VL53L5 de la STMicroelectronics) sunt utilizați pentru autofocusul camerei și aplicații AR.
Pentru sarcina dezactivării ecranului în timpul apelului este suficient un simplu senzor IR binar — costul său este de 0.10–0.30 dolari față de 1–3 dolari pentru un modul ToF. Senzorul ToF adaugă o funcție precisă de telemetrie, dar este redundant pentru sarcina de bază. În unele flagship-uri (Samsung Galaxy S23 Ultra) se utilizează module combinate care îmbină ambele tehnologii.
| Parametru | IR Proximity | Senzor ToF |
|---|---|---|
| Principiu | Intensitatea reflexiei | Timpul de zbor al luminii |
| Rază | 0–10 cm | 0–400 cm |
| Precizie | 0.5 cm | 0.1 cm |
| Cost | $0.10–0.30 | $1–3 |
| Utilizare | Ecran la apel | Autofocus, AR |
Android oferă acces la senzorul de proximitate prin Sensor.TYPE_PROXIMITY. Caracteristica API-ului este că senzorul returnează doar două valori practic semnificative: 0 (obiect aproape) și valoarea maximă a razei (de obicei 5–10 cm) în absența obiectului. Algoritmii interni ascund natura analogică a semnalului.
Natura binară a senzorului înseamnă că aplicația nu poate obține distanța exactă până la obiect — doar faptul prezenței sau absenței unui obstacol în zona de sensibilitate. Aceasta este o limitare hardware. Pentru măsurători mai precise, utilizați senzorul ToF (dacă este disponibil) prin API-ul standard TYPE_PROXIMITY, dar pe dispozitivele cu ToF acesta returnează valori analogice.
val proximitySensor = sensorManager
.getDefaultSensor(Sensor.TYPE_PROXIMITY)
sensorManager.registerListener(
object : SensorEventListener {
override fun onSensorChanged(event: SensorEvent) {
val distance = event.values[0]
val maxRange = proximitySensor?.maximumRange ?: 10f
when {
distance < maxRange -> lockScreen()
else -> unlockScreen()
}
}
override fun onAccuracyChanged(
sensor: Sensor, accuracy: Int
) {}
},
proximitySensor,
SensorManager.SENSOR_DELAY_UI
)
La înregistrarea senzorului de proximitate, este important să utilizați SCREEN_OFF_WAKE_LOCK dacă aplicația trebuie să continue să funcționeze cu ecranul oprit (de exemplu, înregistrarea apelurilor). Fără Wake Lock, procesorul poate intra în modul de repaus, iar datele senzorului nu vor mai fi primite. Indicatorul SENSOR_DELAY_UI (200 ms) este suficient pentru majoritatea scenariilor.
Deși funcția principală a senzorului este oprirea ecranului în timpul apelului, dezvoltatorii găsesc aplicații mai creative. Aplicația Glimmer folosește senzorul de proximitate pentru a schimba melodiile prin mișcarea mânii în fața ecranului — mișcați palma pentru a sări peste o melodie. încărcarea bateriei nu are de suferit: consumul de energie al senzorului este de doar 0.3–0.7 mA.
Principala problemă a senzorilor de proximitate o constituie citirile false la utilizarea sticlelor de protecție și a huselor. Unii producători (Google Pixel 8, 2023) utilizează un senzor de proximitate ultrasonic în loc de IR — acesta funcționează prin orice sticlă de protecție și afișaje de orice grosime, dar are o precizie mai mică și o întârziere mai mare (până la 100 ms). Sticla groasă (peste 0.5 mm) difuzează radiația IR, provocând activarea continuă. Soluția — utilizarea huselor cu decupaj precis pentru senzor. Al doilea dezavantaj — imposibilitatea de a funcționa prin afișajele OLED cu transparență variabilă (under-display sensor).
În 2024–2025, producătorii au început să implementeze senzori de proximitate sub afișaj (under-display), ceea ce a permis reducerea ramelor superioare ale smartphone-ului la 1–2 mm. Primul dispozitiv de serie cu under-display proximity a fost Xiaomi 14 Ultra (2024), urmat de OnePlus 12 și Samsung Galaxy S25. Tehnologia utilizează radiația IR cu lungimea de undă de 940 nm, care trece parțial prin pixelii afișajului OLED. Potrivit Samsung Display Technical Paper (2024), transparența OLED pentru radiația IR este de 15–25% — suficient pentru funcționarea senzorului la o luminozitate a ecranului de până la 600 cd/m². La o luminozitate mai mare, matricea devine opacă pentru IR, iar senzorul necesită dezactivarea iluminării de fundal pentru 1–2 cadre pentru măsurare.
La dezvoltarea aplicațiilor pe Android, emulatorul nu acceptă senzorul de proximitate — acesta trebuie emulat software. Pe un dispozitiv fizic, pentru depanare se poate utiliza comanda adb: adb shell sendevent /dev/input/eventX cu codurile corespunzătoare ABS_MT_TOUCH_MAJOR. Pentru simularea opririi ecranului în timpul apelului în teste, utilizați SensorManager cu un obiect mock care returnează valoarea 0 la apelul onSensorChanged.
Pentru a verifica senzorul de proximitate pe un dispozitiv Android, deschideți aplicația Telefon, formați *#0*# (pe Samsung) și selectați opțiunea Sensor. La apropierea degetului de partea superioară a ecranului, valoarea senzorului ar trebui să se schimbe din «Far» în «Near». Dacă senzorul nu reacționează — ștergeți partea superioară a ecranului și verificați prezența sticlei de protecție care acoperă senzorul. Pe iPhone, verificarea se efectuează prin diagnosticarea sistemului în setări.
Întrebări frecvente
Cel mai adesea problema este sticla de protecție sau husa care acoperă senzorul de proximitate. Asigurați-vă că zona de lângă difuzorul de convorbire nu este blocată. Dacă problema apare pe telefonul gol — este posibil un defect hardware sau murdărirea senzorului.
Senzorul este situat în partea superioară a panoului frontal, lângă difuzorul de convorbire. În smartphone-urile moderne este ascuns sub sticla ecranului. Poate fi văzut luminând cu o lanternă puternică sub un unghi — arată ca un punct mic sau o fantă.
Cu mijloacele standard ale Android — nu. Există însă aplicații cu acces prin meniul de inginerie (formați *#0*# pe Samsung) pentru testare. Pe unele dispozitive, sensibilitatea poate fi ajustată prin modul de service.
API-ul standard al senzorului de proximitate returnează doar faptul detectării — 0 sau maxRange. Pentru a obține distanța exactă, utilizați senzorul Time-of-Flight (dacă dispozitivul este echipat) — accesibil prin același TYPE_PROXIMITY pe dispozitivele compatibile.
Depinde de grosimea și materialul sticlei. Sticlele subțiri flexibile (0.15–0.2 mm) nu afectează funcționarea. Sticlele groase securizate (0.5+ mm) pot difuza radiația IR și pot cauza activarea falsă. Se recomandă sticlele cu decupaj precis sau ramă neagră în jurul senzorului.
Rezumat
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și