22章センサ

機種によっては、それを取り巻く周囲の状況——その機器がどこにあるか、本体がどの向きになっているか、どちらへ移動しているか——を検知するハードウェアを装備しています。

Wi-Fi、携帯電話ネットワーク、GPS機能を利用して得られるデバイスの現在位置、およびその刻々の変化とさらに、磁気センサを使用して北の方角を基準にしたデバイスの向きの情報は、Core Locationフレームワークによって提供されます。これを利用するには、CoreLocation.frameworkにリンクし、さらに<CoreLocation/CoreLocation.h>をインポートします。

加速度センサによって得られたデバイスの移動速度および姿勢の変化に関する情報は、UIEventとUIAccelerometerというクラスを介して提供されます。iOS 4以降では、この情報が、デバイスにジャイロスコープを装備していればそれによって補強され、Core Motionフレームワークを介して取り出すことができます。それには、CoreMotion.frameworkをリンクし、<CoreMotion/CoreMotion.h>をインポートします。UIAccelerometerは、iOS 5以降では正式に廃止されてはいないものの、廃止予定とされています。Appleは、できるだけCore Motionのほうだけを使用するように勧めています。

センサを利用するコードを書くにあたっての主な関門のひとつは、すべての機種がそれらのセンサをすべて装備しているわけではない点にあります。作ろうとしているアプリがどの機種で動作するのかという点について最初から厳しい制限(Info.plist内の項目UIRequiredDeviceCapabilities ...

Get 詳解 iOS SDK 第4版 ―ワンランク上のiPhone/iPadプログラミング now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.