Датчик приближения — это инфракрасный сенсор, определяющий наличие объекта перед экраном смартфона без физического контакта. Основная функция — отключение дисплея во время телефонного разговора для предотвращения случайных нажатий щекой и экономии заряда батареи. По данным Google Android Developer Guide, 2024, современные датчики приближения измеряют расстояние от 0 до 10 см с точностью 0.5 см и временем отклика менее 50 мс.
Главное
Датчик приближения (proximity sensor) — это бесконтактный инфракрасный сенсор, расположенный в верхней части лицевой панели смартфона, рядом с разговорным динамиком. Он состоит из инфракрасного светодиода (IR LED) и фотодетектора (фотодиода или фототранзистора). Первым массовым смартфоном с датчиком приближения стал Apple iPhone (2007) — с тех пор сенсор стал обязательным компонентом всех современных телефонов.
Датчик обычно скрыт под стеклом дисплея и виден только под определённым углом как небольшая точка. В современных моделях используется оптический модуль с узкой диаграммой направленности (15–30 градусов), чтобы исключить ложные срабатывания от отражений в стекле. Производители — Sharp, ams OSRAM (серия TMD), Silicon Labs и их контрактные партнёры.
| Параметр | Значение |
|---|---|
| Длина волны | 850–940 нм (невидимый ИК-диапазон) |
| Дальность | 0–10 см |
| Разрешение | 0.5 см |
| Потребление | 0.3–0.7 мА |
| Время отклика | 10–50 мс |
В мобильных устройствах используются дискретные датчики (отдельный чип IR LED + фотодиод) и интегрированные модули (оба элемента на одном чипе). Интегрированные решения (ams TMD2635, размер 1×1×0.5 мм) используются в ультратонких корпусах современных флагманов и занимают минимум места на плате.
Принцип действия датчика приближения основан на измерении интенсивности отражённого ИК-излучения. Инфракрасный светодиод излучает импульс света (850–940 нм), а фотодиод измеряет количество отражённого от объекта света. Если отражённый сигнал превышает порог — объект считается близким (менее 3–5 см).
Главная техническая проблема — солнечная засветка и помехи от других ИК-источников. Решение — модуляция излучения: IR LED излучает импульсы с частотой 10–100 кГц, а фотоприёмник синхронно детектирует сигнал, отфильтровывая постоянную составляющую. По данным ams Application Note AN000610 (2024), схема синхронного детектирования подавляет фоновую засветку на 40–60 дБ.
Порог срабатывания настраивается производителем на этапе калибровки и зависит от прозрачности стекла дисплея. Типичный порог — отражение соответствует расстоянию 2–4 см. При помещении пальца или уха на расстояние меньше порога датчик выдает значение 0 (близко), иначе — максимальное значение диапазона (8–10 см в зависимости от модели).
Датчик приближения (IR proximity) измеряет интенсивность отражения — бинарный сенсор с двумя состояниями. Time-of-Flight (ToF) измеряет время прохождения света до объекта и обратно, что позволяет точно определять расстояние до нескольких метров. В мобильных устройствах ToF-сенсоры (VL53L5 от STMicroelectronics) используются для автофокуса камеры и AR-приложений.
Для задачи отключения экрана при звонке достаточно простого бинарного IR-датчика — его стоимость 0.10–0.30 доллара против 1–3 долларов за ToF-модуль. ToF-сенсор добавляет точную дальномерную функцию, но избыточен для базовой задачи. В некоторых флагманах (Samsung Galaxy S23 Ultra) используются комбинированные модули, совмещающие обе технологии.
| Параметр | IR Proximity | ToF Sensor |
|---|---|---|
| Принцип | Интенсивность отражения | Время пролёта света |
| Дальность | 0–10 см | 0–400 см |
| Точность | 0.5 см | 0.1 см |
| Стоимость | $0.10–0.30 | $1–3 |
| Применение | Экран при звонке | Автофокус, AR |
Android предоставляет доступ к датчику приближения через Sensor.TYPE_PROXIMITY. Особенность API — сенсор возвращает только два практически значимых значения: 0 (объект рядом) и значение максимальной дальности (обычно 5–10 см) при отсутствии объекта. Внутренние алгоритмы скрывают аналоговую природу сигнала.
Бинарная природа датчика означает, что приложение не может получить точное расстояние до объекта — только факт наличия или отсутствия препятствия в зоне чувствительности. Это ограничение аппаратное. Для более точных измерений используйте ToF-сенсор (если он доступен), через стандартный API TYPE_PROXIMITY, но на устройствах с ToF он возвращает аналоговые значения.
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
)
При регистрации датчика приближения важно использовать SCREEN_OFF_WAKE_LOCK, если приложение должно продолжать работу при выключенном экране (например, запись разговора). Без Wake Lock CPU может перейти в спящий режим, и данные сенсора перестанут поступать. Флаг SENSOR_DELAY_UI (200 мс) достаточно для большинства сценариев.
Хотя основная функция датчика — отключение экрана при звонке, разработчики находят более креативные применения. Приложения Glimmer использует датчик приближения для переключения треков движением руки перед экраном — проведите ладонью, чтобы пропустить песню. Зарядка батареи при этом не страдает: энергопотребление датчика составляет всего 0.3–0.7 мА.
Основная проблема датчиков приближения — ложные срабатывания при использовании защитных стёкол и чехлов. Некоторые производители (Google Pixel 8, 2023) используют ультразвуковой датчик приближения вместо ИК — он работает через любые защитные стёкла и дисплеи любой толщины, но имеет меньшую точность и большую задержку (до 100 мс). Толстое стекло (более 0.5 мм) рассеивает ИК-излучение, вызывая постоянное срабатывание. Решение — использовать чехлы с точным вырезом под датчик. Второй недостаток — невозможность работы через дисплеи OLED с переменной прозрачностью (under-display sensor).
В 2024–2025 годах производители начали внедрять датчики приближения под дисплеем (under-display), что позволило уменьшить верхнюю рамку смартфона до 1–2 мм. Первым серийным устройством с under-display proximity стал Xiaomi 14 Ultra (2024), за ним последовали OnePlus 12 и Samsung Galaxy S25. Технология использует ИК-излучение с длиной волны 940 нм, которое частично проходит через пиксели OLED-дисплея. По данным Samsung Display Technical Paper (2024), прозрачность OLED для ИК-излучения составляет 15–25% — этого достаточно для работы датчика при яркости экрана до 600 кд/м². При более высокой яркости матрица становится непрозрачной для ИК, и датчик требует отключения подсветки на 1–2 кадра для измерения.
При разработке приложений на Android эмулятор не поддерживает датчик приближения — его необходимо эмулировать программно. На физическом устройстве для отладки можно использовать adb-команду: adb shell sendevent /dev/input/eventX с соответствующими кодами ABS_MT_TOUCH_MAJOR. Для симуляции отключения экрана при звонке в тестах используйте SensorManager с mock-объектом, возвращающим значение 0 при вызове onSensorChanged.
Для проверки датчика приближения на устройстве Android откройте приложение «Телефон», наберите *#0*# (на Samsung) и выберите пункт Sensor. При поднесении пальца к верхней части экрана значение датчика должно измениться с «Far» на «Near». Если датчик не реагирует — протрите верхнюю часть экрана и проверьте наличие защитного стекла, перекрывающего сенсор. На iPhone проверка выполняется через системную диагностику в настройках.
Часто задаваемые вопросы
Чаще всего проблема в защитном стекле или чехле, которые перекрывают датчик приближения. Убедитесь, что область рядом с разговорным динамиком не заблокирована. Если проблема на голом телефоне — возможен аппаратный дефект или загрязнение сенсора.
Датчик расположен в верхней части лицевой панели, рядом с разговорным динамиком. В современных смартфонах он скрыт под стеклом дисплея. Увидеть его можно, посветив ярким фонариком под углом — он выглядит как небольшая точка или щель.
Стандартными средствами Android — нет. Однако существуют приложения с доступом через инженерное меню (наберите *#0*# на Samsung) для тестирования. На некоторых устройствах можно отрегулировать чувствительность через сервисный режим.
Стандартный API датчика приближения возвращает только факт обнаружения — 0 или maxRange. Для получения точного расстояния используйте Time-of-Flight сенсор (если устройство оснащено) — доступен через тот же TYPE_PROXIMITY на совместимых устройствах.
Зависит от толщины и материала стекла. Тонкие гибкие стёкла (0.15–0.2 мм) не влияют на работу. Толстые закалённые (0.5+ мм) могут рассеивать ИК-излучение и вызывать ложное срабатывание. Рекомендуются стёкла с точным вырезом или чёрной рамкой вокруг датчика.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также