近接センサーは、物理的な接触なしにスマートフォンの画面の前にある物体の存在を検出する赤外線センサーです。主な機能は、電話通話中にディスプレイをオフにして、頬による誤タッチを防ぎ、バッテリーを節約することです。Google Android Developer Guide, 2024によると、最新の近接センサーは0.5 cmの精度で0〜10 cmの距離を測定し、応答時間は50 ms未満です。
重要なポイント
近接センサーは、スマートフォンの前面パネルの上部、受話スピーカーの横にある非接触型赤外線センサーです。赤外線LED(IR LED)とフォトディテクター(フォトダイオードまたはフォトトランジスター)で構成されています。近接センサーを搭載した最初の量産スマートフォンはApple iPhone(2007年)で、それ以来、このセンサーはすべての現代的な電話に必須の部品となっています。
センサーは通常、ディスプレイガラスの下に隠れており、特定の角度からのみ小さな点として見えます。最新モデルでは、ガラスの反射による誤作動を防ぐため、狭いビーム角(15〜30度)の光学モジュールを使用しています。メーカーには、Sharp、ams OSRAM(TMDシリーズ)、Silicon Labsおよびその契約パートナーが含まれます。
| パラメーター | 値 |
|---|---|
| 波長 | 850〜940 nm(不可視IR領域) |
| 範囲 | 0〜10 cm |
| 分解能 | 0.5 cm |
| 消費電力 | 0.3〜0.7 mA |
| 応答時間 | 10〜50 ms |
モバイル端末では、ディスクリートセンサー(IR LED + フォトダイオードの別個のチップ)と統合モジュール(両要素を1チップに搭載)が使用されています。統合ソリューション(ams TMD2635、サイズ1×1×0.5 mm)は、最新フラッグシップの超薄型筐体で使用され、基板上のスペースを最小限に抑えます。
近接センサーの動作原理は、反射IR放射の強度測定に基づいています。赤外線LEDが光パルス(850〜940 nm)を発射し、フォトダイオードが物体から反射した光の量を測定します。反射信号がしきい値を超えると、物体が近い(3〜5 cm未満)と判断されます。
主な技術的課題は、太陽光の干渉や他のIR光源からのノイズです。解決策は放射変調です。IR LEDは10〜100 kHzの周波数でパルスを放射し、フォトディテクターは同期検出により信号を検出し、DC成分をフィルタリングします。ams Application Note AN000610(2024)によると、同期検出は背景光を40〜60 dB抑制します。
トリガーしきい値は、キャリブレーション時にメーカーが設定し、ディスプレイガラスの透明度に依存します。一般的なしきい値は2〜4 cmの反射距離に相当します。指や耳がしきい値よりも近づくと、センサーは0(近い)を出力します。それ以外の場合は、最大範囲値(モデルにより8〜10 cm)を返します。
IR近接センサーは反射強度を測定します — 2つの状態を持つバイナリーセンサーです。Time-of-Flight(ToF)は光が物体に到達して戻ってくるまでの時間を測定し、最大数メートルまでの正確な距離測定を可能にします。モバイル端末では、ToFセンサー(STMicroelectronicsのVL53L5)がカメラのオートフォーカスやARアプリケーションに使用されています。
通話中の画面オフというタスクには、単純なバイナリーIRセンサーで十分です — そのコストはToFモジュールの$1〜$3に対して$0.10〜$0.30です。ToFセンサーは正確な距離測定を追加しますが、基本的なタスクには過剰です。一部のフラッグシップ(Samsung Galaxy S23 Ultra)では、両方の技術を統合した複合モジュールを使用しています。
| パラメーター | IR近接 | ToFセンサー |
|---|---|---|
| 原理 | 反射強度 | 光の飛行時間 |
| 範囲 | 0〜10 cm | 0〜400 cm |
| 精度 | 0.5 cm | 0.1 cm |
| コスト | $0.10〜$0.30 | $1〜$3 |
| 用途 | 通話中の画面 | オートフォーカス、AR |
AndroidはSensor.TYPE_PROXIMITYを介して近接センサーへのアクセスを提供します。APIの主な特徴は、センサーが実質的に意味のある2つの値(0=物体が近い、および物体がない場合の最大範囲値(通常5〜10 cm))のみを返すことです。内部アルゴリズムが信号のアナログ的な性質を隠蔽します。
センサーのバイナリー的な性質により、アプリは物体までの正確な距離を取得できません — 感知ゾーン内に障害物があるかどうかのみがわかります。これはハードウェアの制限です。より正確な測定には、標準のTYPE_PROXIMITY APIを介してToFセンサー(利用可能な場合)を使用しますが、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 ms)でほとんどのシナリオに十分です。
センサーの主な機能は通話中の画面オフですが、開発者はより創造的な用途を見出しています。Glimmerアプリは、画面の前での手の動きでトラックをスキップするために近接センサーを使用しています — 手のひらをスワイプして曲をスキップします。バッテリーへの影響はありません。センサーの消費電力はわずか0.3〜0.7 mAです。
近接センサーの主な問題は、スクリーンプロテクターやケース使用時の誤作動です。一部のメーカー(Google Pixel 8、2023)はIRの代わりに超音波近接センサーを使用しています — これはあらゆるスクリーンプロテクターやあらゆる厚さのディスプレイを通して機能しますが、精度が低く、レイテンシーが大きい(最大100 ms)です。厚いガラス(0.5 mm以上)はIR放射を散乱させ、常時作動の原因になります。解決策は、センサー用の精密な切り欠きがあるケースを使用することです。2つ目の欠点は、透明度が可変のOLEDディスプレイ(ディスプレイ下センサー)を通して動作できないことです。
2024〜2025年に、メーカーはディスプレイ下近接センサーの実装を開始し、上部ベゼルを1〜2 mmに削減しました。ディスプレイ下近接センサーを搭載した最初の量産端末はXiaomi 14 Ultra(2024)で、その後OnePlus 12とSamsung Galaxy S25が続きました。この技術は、OLEDピクセルを部分的に通過する940 nmのIR放射を使用します。Samsung Display Technical Paper(2024)によると、IR放射に対するOLEDの透明度は15〜25%で、600 cd/m²までの画面輝度でのセンサー動作に十分です。より高い輝度では、マトリックスがIRに対して不透明になり、センサーは測定のために1〜2フレームの間バックライトをオフにする必要があります。
Androidアプリ開発時、エミュレーターは近接センサーをサポートしていません — ソフトウェアでエミュレートする必要があります。物理デバイスでは、適切なABS_MT_TOUCH_MAJORコードを指定してadbコマンドadb shell sendevent /dev/input/eventXを使用できます。テストで通話中の画面オフをシミュレートするには、onSensorChanged呼び出し時に0を返すモックオブジェクトでSensorManagerを使用します。
Android端末で近接センサーをテストするには、電話アプリを開き、*#0*#(Samsungの場合)をダイヤルしてSensorを選択します。指を画面の上部に近づけると、センサーの値が「Far」から「Near」に変わります。センサーが反応しない場合は、画面の上部を拭き、センサーを覆っているスクリーンプロテクターがないか確認してください。iPhoneでは、設定のシステム診断を通じてテストを行います。
よくある質問
最も一般的な原因は、スクリーンプロテクターやケースが近接センサーを覆っていることです。受話スピーカーの近くのエリアが塞がれていないことを確認してください。プロテクターなしの電話で問題が発生する場合は、ハードウェアの欠陥またはセンサーの汚れの可能性があります。
センサーは前面パネルの上部、受話スピーカーの横にあります。最新のスマートフォンでは、ディスプレイガラスの下に隠れています。明るい懐中電灯を斜めから当てると見えます — 小さな点やスリットのように見えます。
標準的なAndroidツールでは — いいえ。ただし、テスト用にエンジニアリングメニュー(Samsungでは*#0*#をダイヤル)にアクセスできるアプリがあります。一部の端末では、サービスモードから感度を調整できます。
標準の近接センサーAPIは検出フラグのみを返します — 0またはmaxRange。正確な距離には、Time-of-Flightセンサー(端末にある場合)を使用します — 対応端末では同じTYPE_PROXIMITYを介して利用可能です。
厚さと素材によります。薄い柔軟性のあるプロテクター(0.15〜0.2 mm)は動作に影響しません。厚い強化ガラス(0.5 mm以上)はIR放射を散乱させ、誤作動を引き起こす可能性があります。センサーの周囲に正確な切り欠きまたは黒い枠があるプロテクターが推奨されます。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。