GPRS を使用してユーザーの現在地を随時更新する iPhone アプリケーションを開発しています。
バッテリーが消耗していることがわかりました。
誰でもこの問題を解決するのを手伝ってもらえますか?
GPRS を使用してユーザーの現在地を随時更新する iPhone アプリケーションを開発しています。
バッテリーが消耗していることがわかりました。
誰でもこの問題を解決するのを手伝ってもらえますか?
あなたの観察は正しいです。GPS サービスは電力を大量に消費する操作です。オンボード ラジオの電源を入れ、利用可能なセル タワー、Wi-Fi ホットスポット、または GPS 衛星をクエリする必要があり、これには数秒かかる場合があります。標準の位置情報サービスを長時間実行すると、デバイスのバッテリーが消耗する可能性があります。
iOS 関係者は、これに対する解決策を考案しました。その意味の場所の変更と呼ばれます。大幅に変更された位置情報サービスは、セルラー無線を備えたデバイスに低電力の位置情報サービスを提供します。このサービスは iOS 4.0 以降でのみ使用でき、一時停止中または実行されていないアプリを起動することもできます。これが機能する方法は、このサービスにサブスクライブし、ユーザーから「意味の場所」の変更が発生した場合に iOS に通知するように要求することです。「重要」の定義はあなたの手の中にありません。実際、これはバッテリーを節約するものです。場所を照会しません。更新情報を取得します。
私の意見では、この API は優れており、「かなり」正確な位置を示します。追跡アプリを構築している場合を除き、この API はバッテリーを簡単に使用できる方法です。位置情報サービスを悪用してバッテリーを消耗させていたという理由だけで、容赦なく削除したアプリ (有料および無料) の数はわかりません。ユーザーの iPhone がバッテリー切れで半日で使えなくなったと想像してみてください。このことに十分注意してください。このサービスを開始する方法は -
- (void)startSignificantChangeUpdates
{
// Create the location manager if this object does not
// already have one.
if (nil == locationManager)
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager startMonitoringSignificantLocationChanges];
}
その後、標準の位置情報サービスと同様に、位置データがデリゲート オブジェクトに配信されます。ユースケースに基づいて使用できます。詳細については、Apple Location Docsを参照してください。