iphone-センサの使い方と注意事項(距離センサー)

1846 ワード

ソース:http://blog.csdn.net/xinruiios/article/details/8985828
一、使用シーン:
    画面の長期点灯による電力消費を軽減するために、イヤホンとスピーカーモードの切り替えを検出する時に使用します.
二、使い方:
1、近接センサを使用するには、まず近接検知設定を有効にする必要があります.
[[UIDevice currentDevice] setProximityMonitoringEnabled:YES];
 
[UIDevice currentDevice].proximityMonitoringEnabled = YES;
2、センサの状態に変化が生じた旨の通知を登録する:
[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(sensorStateChange:)
                                             name:UIDeviceProximityStateDidChangeNotification
                                           object:nil];
3、センサ状態変更処理
-(void)sensorStateChange:(NSNotificationCenter *)notification;
{
    if ([[UIDevice currentDevice] proximityState] == YES) {
        NSLog(@"Device is close to user");
          //      ,         
    }else{
        NSLog(@"Device is not close to user");
    }
}
4、アプリケーションにセンサを常に有効にする必要がない場合は、第一歩のスイッチをオフにする必要があります.
三、注意事項
    センサ機能に近接したアプリケーションを起動したくない場合、スピーカと受話器の切り替えが必要であれば、センサに接近して音声出力モードの切り替えを行う必要があります.この場合、受話器を通して音声が再生されたら、再生が終了しても受話器モードで出力されますので、注意が必要です.このときセンサ機能をオフにすると、センサ機能がオフになり、アプリケーションが登録されているセンサ変更通知を再び受信できなくなり、その際、下の音出力モードを切り替えることができないと、関連する音声出力が受話器から出力され、センサに反映される障害がセンサの役割範囲から離れていても、ただし、アプリケーションで取得したセンサの状態はまだ近くないので、センサの状態に応じて音声出力モードを切り替える動作は無効になります. 
    特別な場合:
iPhone 4 s及びiPhone 5において、センサー機能がオフした後、センサーの状態がYESであれば、再度音センサーを起動する時、センサーの変更通知がありません.
iPhone 4では、センサ機能がオフされた後、センサの状態がYESであれば、再度音センサーを起動する時に、センサの変更通知が先に届きます.
   この問題の解決策は、センサ機能が開始された時にセンサセンシング状態がYESの場合、音声再生が終了し、センサ状態が変更されていない場合はセンサ機能をオフにしない.センサに反映される障害がセンサの役割範囲から離れているとセンサ変更の通知があり、変更通知で現在のセンサ状態がオン状態であるかどうかや音声再生状態が検出され、センサ状態がYESである場合、センサ機能をオンする必要がある操作(音声再生機能など)が終了した場合、センサーの機能をオフにすればいいです.