حسگر مجاورت یک سنسور مادون قرمز است که وجود جسم را در مقابل صفحه نمایش گوشی هوشمند بدون تماس فیزیکی تشخیص میدهد. وظیفه اصلی آن خاموش کردن نمایشگر در طول مکالمه تلفنی برای جلوگیری از لمسهای تصادفی با گونه و صرفهجویی در مصرف باتری است. به گفته Google Android Developer Guide, 2024، حسگرهای مجاورت مدرن فاصله 0 تا 10 سانتیمتر را با دقت 0.5 سانتیمتر و زمان پاسخ کمتر از 50 میلیثانیه اندازهگیری میکنند.
نکات اصلی
حسگر مجاورت (proximity sensor) یک سنسور مادون قرمز غیرتماسی است که در قسمت بالای پنل جلویی گوشی هوشمند، در کنار بلندگوی مکالمه قرار دارد. از یک دیود مادون قرمز (IR LED) و یک آشکارساز نوری (فوتودیود یا فوتوترانزیستور) تشکیل شده است. اولین گوشی هوشمند انبوه با حسگر مجاورت Apple iPhone (2007) بود — از آن زمان سنسور به یک جزء اجباری تمام تلفنهای مدرن تبدیل شده است.
حسگر معمولاً در زیر شیشه نمایشگر پنهان است و فقط در زاویه خاصی بهعنوان یک نقطه کوچک قابل مشاهده است. در مدلهای مدرن از ماژول نوری با زاویه تابش باریک (۱۵–۳۰ درجه) برای جلوگیری از خوانشهای نادرست ناشی از انعکاس در شیشه استفاده میشود. تولیدکنندگان — Sharp، ams OSRAM (سری TMD)، Silicon Labs و شرکای قراردادی آنها.
| پارامتر | مقدار |
|---|---|
| طول موج | ۸۵۰–۹۴۰ نانومتر (محدوده IR نامرئی) |
| محدوده | ۰–۱۰ سانتیمتر |
| دقت | ۰.۵ سانتیمتر |
| مصرف | ۰.۳–۰.۷ میلیآمپر |
| زمان پاسخ | ۱۰–۵۰ میلیثانیه |
در دستگاههای موبایل از حسگرهای گسسته (تراشه مجزای IR LED + فوتودیود) و ماژولهای یکپارچه (هر دو عنصر روی یک تراشه) استفاده میشود. راهحلهای یکپارچه (ams TMD2635، ابعاد ۱×۱×۰.۵ میلیمتر) در بدنههای فوقباریک پرچمداران مدرن استفاده میشوند و حداقل فضا را روی برد اشغال میکنند.
اصل عملکرد حسگر مجاورت بر اندازهگیری شدت تابش IR بازتابیده استوار است. دیود مادون قرمز یک پالس نور (۸۵۰–۹۴۰ نانومتر) منتشر میکند و فوتودیود مقدار نور بازتابیده از جسم را اندازهگیری میکند. اگر سیگنال بازتابیده از آستانه عبور کند — جسم نزدیک در نظر گرفته میشود (کمتر از ۳–۵ سانتیمتر).
مشکل فنی اصلی نور خورشید و تداخل از سایر منابع IR است. راهحل — مدولاسیون تابش: IR LED پالسهایی با فرکانس ۱۰–۱۰۰ کیلوهرتز منتشر میکند و آشکارساز نوری سیگنال را بهطور همزمان تشخیص میدهد و مؤلفه ثابت را فیلتر میکند. طبق ams Application Note AN000610 (2024)، مدار تشخیص همزمان نور پسزمینه را ۴۰–۶۰ دسیبل سرکوب میکند.
آستانه فعالسازی توسط تولیدکننده در مرحله کالیبراسیون تنظیم میشود و به شفافیت شیشه نمایشگر بستگی دارد. آستانه معمول — انعکاس مربوط به فاصله ۲–۴ سانتیمتر است. وقتی انگشت یا گوش در فاصله کمتر از آستانه قرار گیرد، حسگر مقدار ۰ (نزدیک) و در غیر این صورت حداکثر مقدار محدوده (۸–۱۰ سانتیمتر بسته به مدل) را برمیگرداند.
حسگر مجاورت (IR proximity) شدت بازتاب را اندازهگیری میکند — یک سنسور دودویی با دو حالت. Time-of-Flight (ToF) زمان عبور نور به جسم و بازگشت را اندازهگیری میکند که امکان تعیین دقیق فاصله تا چند متر را فراهم میکند. در دستگاههای موبایل، سنسورهای ToF (VL53L5 از STMicroelectronics) برای فوکوس خودکار دوربین و برنامههای AR استفاده میشوند.
برای وظیفه خاموش کردن صفحه هنگام تماس یک سنسور IR دودویی ساده کافی است — هزینه آن ۰.۱۰–۰.۳۰ دلار در مقایسه با ۱–۳ دلار برای ماژول ToF. سنسور ToF یک عملکرد دقیق مسافتیاب اضافه میکند اما برای وظیفه پایه اضافی است. در برخی پرچمداران (Samsung Galaxy S23 Ultra) از ماژولهای ترکیبی استفاده میشود که هر دو فناوری را ترکیب میکنند.
| پارامتر | IR Proximity | سنسور ToF |
|---|---|---|
| اصل | شدت بازتاب | زمان پرواز نور |
| محدوده | ۰–۱۰ سانتیمتر | ۰–۴۰۰ سانتیمتر |
| دقت | ۰.۵ سانتیمتر | ۰.۱ سانتیمتر |
| هزینه | $۰.۱۰–۰.۳۰ | $۱–۳ |
| کاربرد | صفحه هنگام تماس | فوکوس خودکار، AR |
اندروید دسترسی به حسگر مجاورت را از طریق Sensor.TYPE_PROXIMITY فراهم میکند. ویژگی API این است که سنسور فقط دو مقدار عملاً مهم را برمیگرداند: 0 (جسم نزدیک) و حداکثر مقدار محدوده (معمولاً ۵–۱۰ سانتیمتر) در صورت عدم وجود جسم. الگوریتمهای داخلی ماهیت آنالوگ سیگنال را پنهان میکنند.
ماهیت دودویی سنسور به این معنی است که برنامه نمیتواند فاصله دقیق تا جسم را دریافت کند — فقط واقعیت وجود یا عدم وجود مانع در ناحیه حساسیت. این یک محدودیت سختافزاری است. برای اندازهگیریهای دقیقتر از سنسور 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 (۲۰۰ میلیثانیه) برای اکثر سناریوها کافی است.
اگرچه وظیفه اصلی حسگر خاموش کردن صفحه هنگام تماس است، توسعهدهندگان کاربردهای خلاقانهتری پیدا میکنند. برنامه Glimmer از حسگر مجاورت برای تغییر آهنگها با حرکت دست در مقابل صفحه استفاده میکند — کف دست خود را حرکت دهید تا آهنگ را رد کنید. شارژ باتری تحت تأثیر قرار نمیگیرد: مصرف انرژی سنسور فقط ۰.۳–۰.۷ میلیآمپر است.
مشکل اصلی حسگرهای مجاورت خوانشهای نادرست هنگام استفاده از شیشههای محافظ و قابها است. برخی تولیدکنندگان (Google Pixel 8، 2023) از حسگر مجاورت فراصوت بهجای IR استفاده میکنند — از طریق هر شیشه محافظ و نمایشگر با هر ضخامتی کار میکند، اما دقت کمتر و تأخیر بیشتری (تا ۱۰۰ میلیثانیه) دارد. شیشه ضخیم (بیش از ۰.۵ میلیمتر) تابش IR را پراکنده میکند و باعث فعالسازی مداوم میشود. راهحل — استفاده از قابهایی با برش دقیق برای حسگر. دومین نقص — عدم امکان کار از طریق نمایشگرهای OLED با شفافیت متغیر (under-display sensor).
در سالهای ۲۰۲۴–۲۰۲۵، تولیدکنندگان شروع به استفاده از حسگرهای مجاورت زیر نمایشگر (under-display) کردند که امکان کاهش حاشیه بالایی گوشی هوشمند به ۱–۲ میلیمتر را فراهم کرد. اولین دستگاه سریال با under-display proximity شیائومی 14 Ultra (2024) بود و پس از آن OnePlus 12 و Samsung Galaxy S25 آمدند. این فناوری از تابش IR با طول موج ۹۴۰ نانومتر استفاده میکند که تا حدی از پیکسلهای نمایشگر OLED عبور میکند. طبق Samsung Display Technical Paper (2024)، شفافیت OLED برای تابش IR ۱۵–۲۵٪ است — این برای کار سنسور در روشنایی صفحه تا ۶۰۰ کاندلا بر مترمربع کافی است. در روشنایی بالاتر، ماتریس برای IR غیرشفاف میشود و سنسور برای اندازهگیری نیاز به خاموش کردن نور پسزمینه برای ۱–۲ فریم دارد.
هنگام توسعه برنامهها در اندروید، شبیهساز از حسگر مجاورت پشتیبانی نمیکند — باید آن را بهصورت نرمافزاری شبیهسازی کرد. در دستگاه فیزیکی برای اشکالزدایی میتوان از دستور adb استفاده کرد: adb shell sendevent /dev/input/eventX با کدهای ABS_MT_TOUCH_MAJOR مربوطه. برای شبیهسازی خاموش شدن صفحه هنگام تماس در تستها، از SensorManager با یک شی mock استفاده کنید که مقدار 0 را هنگام فراخوانی onSensorChanged برمیگرداند.
برای بررسی حسگر مجاورت در دستگاه اندرویدی، برنامه تلفن را باز کنید، *#0*# را شمارهگیری کنید (در سامسونگ) و گزینه Sensor را انتخاب کنید. با نزدیک کردن انگشت به قسمت بالای صفحه، مقدار سنسور باید از «Far» به «Near» تغییر کند. اگر سنسور واکنش نشان نمیدهد — قسمت بالای صفحه را تمیز کنید و وجود شیشه محافظ پوشاننده سنسور را بررسی کنید. در iPhone بررسی از طریق تشخیص سیستم در تنظیمات انجام میشود.
سوالات متداول
اغلب مشکل از شیشه محافظ یا قاب است که حسگر مجاورت را میپوشاند. مطمئن شوید ناحیه کنار بلندگوی مکالمه مسدود نشده است. اگر مشکل روی گوشی بدون محافظ باشد — ممکن است نقص سختافزاری یا کثیفی سنسور باشد.
حسگر در قسمت بالای پنل جلویی، در کنار بلندگوی مکالمه قرار دارد. در گوشیهای هوشمند مدرن زیر شیشه نمایشگر پنهان است. میتوان آن را با زدن نور چراغ قوه روشن در زاویه دید — بهصورت یک نقطه یا شکاف کوچک مشاهده کرد.
با ابزارهای استاندارد اندروید — خیر. با این حال برنامههایی با دسترسی از طریق منوی مهندسی (شمارهگیری *#0*# در سامسونگ) برای تست وجود دارد. در برخی دستگاهها میتوان حساسیت را از طریق حالت سرویس تنظیم کرد.
API استاندارد حسگر مجاورت فقط واقعیت تشخیص را برمیگرداند — 0 یا maxRange. برای بدست آوردن فاصله دقیق از سنسور Time-of-Flight (در صورت مجهز بودن دستگاه) استفاده کنید — از طریق همان TYPE_PROXIMITY در دستگاههای سازگار قابل دسترسی است.
بستگی به ضخامت و جنس شیشه دارد. شیشههای نازک انعطافپذیر (۰.۱۵–۰.۲ میلیمتر) تأثیری ندارند. شیشههای ضخیم سکوریت (۰.۵+ میلیمتر) ممکن است تابش IR را پراکنده کرده و باعث فعالسازی نادرست شوند. شیشههای با برش دقیق یا قاب مشکی اطراف حسگر توصیه میشوند.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید