1

私は現在、クライアントが自宅から 150 メートル以内に到着したときに、ガレージを開けたり、リビング ルームやオフィスの照明をオンにしたり、その他のことを行うクライアント向けのホーム オートメーション アプリを作成しています。彼らが去るとき、それは反対のことをします。ジオフェンシングが iOS に組み込まれていることに非常に感謝しています。この機能は、アプリがフォアグラウンドにあるときは完全に機能しますが、ユーザーがアプリを閉じても電話がまだジオフェンスを監視している場合、イベントが発生してもアプリは何もしません。locationManager:didEnterRegion: 以外に、アプリへのバックグラウンド通知用に実装する必要がある別のメソッドはありますか? これが私が今使っているコードです:

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region {
    NSLog(@"Entered Region - %@", region.identifier);
    [self showRegionAlert:@"Entering Region" forRegion:region.identifier];
    [self sendCommand:true];
}

- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region {
    NSLog(@"Exited Region - %@", region.identifier);
    [self showRegionAlert:@"Exiting Region" forRegion:region.identifier];
    [self sendCommand:false];
}
4

3 に答える 3

1

I discovered it was a non-issue. It all works exactly the same way as if the app were active. The same method is called. I made sure to optimize the app for background launch though so that it would be more of an instant response. I guess I was doing something wrong though, or it just wasn't working at first.

于 2012-11-22T01:34:53.757 に答える
1

アプリがバックグラウンドにあるときに位置情報サービスを使用するには、アプリの情報 plist ファイルを変更する必要があります。Supporting Filesフォルダにあり、YourAppName-Info.plist のようになります

情報プロパティ リストにアイテムを追加し、配列タイプの必須バックグラウンド モードをキーとして入力します。その配列に項目を追加し、その項目の値に位置更新用のアプリ登録を入力します。

于 2012-11-21T03:00:09.367 に答える