Een nabijheidssensor is een infraroodsensor die de aanwezigheid van een object voor het smartphonescherm detecteert zonder fysiek contact. De hoofdfunctie is het uitschakelen van het scherm tijdens een telefoongesprek om per ongeluk aanrakingen met de wang te voorkomen en de batterij te sparen. Volgens Google Android Developer Guide, 2024 meten moderne nabijheidssensoren afstanden van 0 tot 10 cm met een nauwkeurigheid van 0.5 cm en een responstijd van minder dan 50 ms.
Belangrijkste
Nabijheidssensor (proximity sensor) is een contactloze infraroodsensor in het bovenste gedeelte van het voorpaneel van de smartphone, naast de oortelefoon. Hij bestaat uit een infrarood-LED (IR LED) en een fotodetector (fotodiode of fototransistor). De eerste massaal geproduceerde smartphone met een nabijheidssensor was de Apple iPhone (2007) — sindsdien is de sensor een verplicht onderdeel van alle moderne telefoons geworden.
De sensor is meestal verborgen onder het glas van het scherm en is alleen onder een bepaalde hoek zichtbaar als een klein puntje. In moderne modellen wordt een optische module met een smalle stralingshoek (15–30 graden) gebruikt om valse metingen door reflecties in het glas uit te sluiten. Fabrikanten — Sharp, ams OSRAM (serie TMD), Silicon Labs en hun contractpartners.
| Parameter | Waarde |
|---|---|
| Golflengte | 850–940 nm (onzichtbaar IR-bereik) |
| Bereik | 0–10 cm |
| Resolutie | 0.5 cm |
| Verbruik | 0.3–0.7 mA |
| Responstijd | 10–50 ms |
In mobiele apparaten worden discrete sensoren (afzonderlijke IR LED + fotodiode-chip) en geïntegreerde modules (beide elementen op één chip) gebruikt. Geïntegreerde oplossingen (ams TMD2635, afmeting 1×1×0.5 mm) worden gebruikt in ultradunne behuizingen van moderne vlaggenschepen en nemen minimale ruimte op de printplaat in.
Het werkingsprincipe van de nabijheidssensor is gebaseerd op het meten van de intensiteit van gereflecteerde IR-straling. De infrarood-LED zendt een lichtpuls uit (850–940 nm) en de fotodiode meet de hoeveelheid licht die door het object wordt gereflecteerd. Als het gereflecteerde signaal een drempel overschrijdt — wordt het object als dichtbij beschouwd (minder dan 3–5 cm).
Het belangrijkste technische probleem is zonlicht en interferentie van andere IR-bronnen. De oplossing — modulatie van de straling: de IR LED zendt pulsen uit met een frequentie van 10–100 kHz en de fotodetector detecteert het signaal synchroon, waarbij de constante component wordt weggefilterd. Volgens ams Application Note AN000610 (2024) onderdrukt het synchrone detectieschema omgevingslicht met 40–60 dB.
De activeringsdrempel wordt door de fabrikant ingesteld tijdens de kalibratiefase en is afhankelijk van de transparantie van het schermglas. Een typische drempel — reflectie komt overeen met een afstand van 2–4 cm. Wanneer een vinger of oor zich op een afstand kleiner dan de drempel bevindt, retourneert de sensor de waarde 0 (dichtbij), anders — de maximale bereikwaarde (8–10 cm, afhankelijk van het model).
Nabijheidssensor (IR proximity) meet de reflectie-intensiteit — een binaire sensor met twee toestanden. Time-of-Flight (ToF) meet de tijd die licht nodig heeft om naar een object en terug te reizen, waardoor nauwkeurige afstandsmeting tot enkele meters mogelijk is. In mobiele apparaten worden ToF-sensoren (VL53L5 van STMicroelectronics) gebruikt voor autofocus van de camera en AR-toepassingen.
Voor de taak van het uitschakelen van het scherm tijdens een gesprek is een eenvoudige binaire IR-sensor voldoende — de kosten zijn $0.10–0.30 vergeleken met $1–3 voor een ToF-module. Een ToF-sensor voegt een nauwkeurige afstandmeetfunctie toe, maar is overbodig voor de basistaak. In sommige vlaggenschepen (Samsung Galaxy S23 Ultra) worden gecombineerde modules gebruikt die beide technologieën verenigen.
| Parameter | IR Proximity | ToF-sensor |
|---|---|---|
| Principe | Reflectie-intensiteit | Lichtvluchttijd |
| Bereik | 0–10 cm | 0–400 cm |
| Nauwkeurigheid | 0.5 cm | 0.1 cm |
| Kosten | $0.10–0.30 | $1–3 |
| Toepassing | Scherm bij gesprek | Autofocus, AR |
Android biedt toegang tot de nabijheidssensor via Sensor.TYPE_PROXIMITY. Kenmerkend voor de API is dat de sensor slechts twee praktisch belangrijke waarden retourneert: 0 (object dichtbij) en de maximale bereikwaarde (meestal 5–10 cm) bij afwezigheid van een object. Interne algoritmen verbergen de analoge aard van het signaal.
De binaire aard van de sensor betekent dat de applicatie de exacte afstand tot het object niet kan verkrijgen — alleen het feit van aanwezigheid of afwezigheid van een obstakel in het gevoelige gebied. Dit is een hardwarebeperking. Gebruik voor nauwkeurigere metingen de ToF-sensor (indien beschikbaar) via de standaard TYPE_PROXIMITY API, maar op apparaten met ToF retourneert deze analoge waarden.
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
)
Bij het registreren van de nabijheidssensor is het belangrijk om SCREEN_OFF_WAKE_LOCK te gebruiken als de applicatie moet blijven werken met uitgeschakeld scherm (bijvoorbeeld gespreksopname). Zonder Wake Lock kan de CPU in slaapmodus gaan en stoppen sensorgegevens binnen te komen. De vlag SENSOR_DELAY_UI (200 ms) is voldoende voor de meeste scenario's.
Hoewel de hoofdfunctie van de sensor het uitschakelen van het scherm tijdens een gesprek is, vinden ontwikkelaars creatievere toepassingen. De app Glimmer gebruikt de nabijheidssensor om nummers te wisselen met een handbeweging voor het scherm — beweeg uw handpalm om een nummer over te slaan. Het opladen van de batterij heeft hier geen last van: het energieverbruik van de sensor is slechts 0.3–0.7 mA.
Het grootste probleem van nabijheidssensoren zijn valse metingen bij gebruik van beschermfolies en hoesjes. Sommige fabrikanten (Google Pixel 8, 2023) gebruiken een ultrasone nabijheidssensor in plaats van IR — deze werkt door alle beschermfolies en schermen van elke dikte, maar heeft een lagere nauwkeurigheid en een grotere vertraging (tot 100 ms). Dik glas (meer dan 0.5 mm) verstrooit IR-straling, waardoor continue activering ontstaat. De oplossing — gebruik hoesjes met een precieze uitsparing voor de sensor. Een tweede nadeel — onmogelijkheid om te werken door OLED-schermen met variabele transparantie (under-display sensor).
In 2024–2025 begonnen fabrikanten nabijheidssensoren onder het scherm (under-display) te implementeren, waardoor de bovenrand van de smartphone kon worden verkleind tot 1–2 mm. Het eerste serieel geproduceerde apparaat met under-display proximity was de Xiaomi 14 Ultra (2024), gevolgd door de OnePlus 12 en Samsung Galaxy S25. De technologie maakt gebruik van IR-straling met een golflengte van 940 nm die gedeeltelijk door de pixels van het OLED-scherm gaat. Volgens Samsung Display Technical Paper (2024) is de transparantie van OLED voor IR-straling 15–25% — voldoende voor de werking van de sensor bij een schermhelderheid tot 600 cd/m². Bij hogere helderheid wordt de matrix ondoorzichtig voor IR en moet de sensor de achtergrondverlichting gedurende 1–2 frames uitschakelen voor meting.
Bij het ontwikkelen van apps in Android ondersteunt de emulator geen nabijheidssensor — deze moet softwarematig worden geëmuleerd. Op een fysiek apparaat kan voor debugging het adb-commando worden gebruikt: adb shell sendevent /dev/input/eventX met de juiste ABS_MT_TOUCH_MAJOR-codes. Gebruik voor het simuleren van het uitschakelen van het scherm tijdens een gesprek in tests SensorManager met een mock-object dat de waarde 0 retourneert bij aanroep van onSensorChanged.
Om de nabijheidssensor op een Android-apparaat te testen, opent u de Telefoon-app, toetst u *#0*# (op Samsung) en selecteert u de optie Sensor. Bij het naderen van een vinger tot het bovenste gedeelte van het scherm moet de sensorwaarde veranderen van «Far» naar «Near». Als de sensor niet reageert — reinig het bovenste gedeelte van het scherm en controleer op beschermglas dat de sensor bedekt. Op de iPhone wordt de test uitgevoerd via systeemdiagnose in de instellingen.
Veelgestelde vragen
Meestal is het probleem beschermglas of hoesje die de nabijheidssensor bedekken. Zorg ervoor dat het gebied naast de oortelefoon niet geblokkeerd is. Als het probleem optreedt bij een kale telefoon — is mogelijk een hardwaredefect of vervuiling van de sensor de oorzaak.
De sensor bevindt zich in het bovenste gedeelte van het voorpaneel, naast de oortelefoon. In moderne smartphones is hij verborgen onder het schermglas. U kunt hem zien door met een felle zaklamp onder een hoek te schijnen — hij ziet eruit als een klein puntje of een gleuf.
Met standaard Android-middelen — nee. Er bestaan echter apps met toegang via het engineeringmenu (toets *#0*# op Samsung) voor testen. Op sommige apparaten kan de gevoeligheid worden aangepast via de servicemodus.
De standaard API van de nabijheidssensor retourneert alleen het detectiefeit — 0 of maxRange. Gebruik voor het verkrijgen van de exacte afstand de Time-of-Flight-sensor (indien het apparaat ermee is uitgerust) — toegankelijk via dezelfde TYPE_PROXIMITY op compatibele apparaten.
Afhankelijk van de dikte en het materiaal van het glas. Dunne flexibele glazen (0.15–0.2 mm) hebben geen invloed. Dik gehard glas (0.5+ mm) kan IR-straling verstrooien en valse activering veroorzaken. Aanbevolen worden glazen met een precieze uitsparing of een zwarte rand rond de sensor.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook