swwdc gpsロガー作成で得たtips
Post on 13-Jun-2015
446 Views
Preview:
TRANSCRIPT
GPSロガー作成で得たTipsKyasuSoft
自己紹介
• 安原 啓悦(ヤスハラ ケイエツ)
• Twitter @kyasusoft
バックグラウンドでの ロケーション取得の継続
• バックグラウンドでのロケーション取得
• Info.plist
Required background modes :
App registers for location updates
• ロケーション取得開始
[locationManager startUpdateLocation]
• これだけだと、約20分動きがないと休止モードに入る。動き出すと再開するはずなのですが、実際やってみると再開しないっぽい!
• そこで、プロパティを設定。
locationManager.pausesLocationUpdatesAutomatically = NO;
位置情報って結構飛ぶんです
• CLLocationのDelegeteで位置情報が取得できますが、た~まに100mとかポンと飛んだデータが得られます。
• そのまま使うと、変な位置に居ることになったり、距離が大幅に狂ったりします。
• そこで、対策として
• 前回の取得位置から100m離れていたら無効データとして捨てることにしました。
• 大体1秒毎にDelegateが呼ばれるので時速360kmで走るといつまでも捨て続けることになりますが...
アプリが喋る時に BGMの音量を下げる
• 「ミュージック」アプリで音楽をかけながらアプリで一定距離、時間のタイミングで喋らせた。
• Info.plist
Required background modes :
App plays audio or streams audio/video using AirPlay
// バックグラウンドでの再生の準備
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
UInt32 p = 1;
// 他の音も出す
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(p), &p);
p = 1;
// 他の音を下げる
AudioSessionSetProperty (kAudioSessionProperty_OtherMixableAudioShouldDuck, sizeof(p), &p);
MKMapView
• 拡大時に建物を表示(iOS 7 only)
• _map.showsBuildings = YES;
• ランドマークを表示(iOS 7 only)
• _map.showsPointsOfInterest = YES;
top related