2016-03-19 5 views
3

iPhoneを向いている方向を検出する必要があります。そのため、遮られていないカメラ(前面または背面)から録画することができます。iPhoneが「フェイスダウン」か「フェイスアップ」かを確認するにはどうすればいいですか?

これは非常時の状況で使用され、電話機が破棄されたり、アクティブなカメラが何の価値も記録しないように配置されます。

これを特定するために使用できるAPIまたは技術はありますか?

答えて

2

UIDeviceクラスのProximityStateプロパティを確認します。これは、画面がオブジェクト(ユーザーの顔、または地上の平面)の近くにあるかどうかを示します。

新しいデバイスの場合は、CoreMotionを使用することもできます。 Z軸の正の値は、電話機の画面のフェイスダウンに対応する必要があります。

+0

UIDevice-ありがとうございました。 – LamonteCristo

4

コアモーション加速度計を使用します。重力の方向を報告します。重力の方向は、デバイスがどの方向に向いているかを示します。スウィフトで書かれ

func trackOrientationChanges() { 
    UIDevice.current.beginGeneratingDeviceOrientationNotifications() 
    NotificationCenter.default.addObserver(forName: NSNotification.Name.UIDeviceOrientationDidChange, object: nil, queue: nil, using: 
    { notificiation in 
     if UIDevice.current.orientation == .faceDown { 
      print("Device is face down") 
     } else { 
      print("Device is not face down") 
     } 
    }) 
} 

:ここ

2

は、私はそれがダウンして顔やフェイスアップ(または、あなたが探しているものは何でも向き)であるとき、あなたが知ることができるように、向きの変更の追跡を開始するために書いた簡単な関数であります3が、APIはiOS 2.0以上で利用可能です

+0

iphonexでも動作しますか? –

+0

はそれのために働いていないようです.. –

関連する問題