2012-02-15 3 views
0

こんにちは、バックグラウンドでコアの場所を使用するアプリケーションを開発し、ユーザーに位置通知のプッシュを通知します。コアをオン/オフに切り替えます。

重要な場所の変更を登録するには、次のコードを使用します。

CLLocationManager *locationManager = [[[CLLocationManager alloc] init] 
autorelease]; 
[locationManager startMonitoringSignificantLocationChanges]; 

ロケーションを更新するときにバックグラウンドタスクを実行します。

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
    fromLocation:(CLLocation *)oldLocation; 

ただし、この機能は特定の曜日にのみ必要です。 CLLocationManagerが特定の曜日だけアクティブになるようにタイマーを設定することは可能ですか?

例えば、月曜日のみ重要な場所の変更をオンにし、残りの部分は記号の位置を変更しないようにします。

EDIT:ロケーションサービスを無効にすることを明確にするために([locationManager stopMonitoringSignificantLocationChanges]を呼び出すのと同じ)、つまり、 gpsシンボルは月曜日にのみ有効になり、他の日にはgpsシンボルはオフになります。

答えて

0
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; 
NSDate *today = [NSDate date]; 
NSDateComponents *weekdayComponents = [gregorian components:NSWeekdayCalendarUnit fromDate:toDay]; 
NSInteger weekday = [weekdayComponents weekday]; 
if (weekday == 2) { 
    // It is monday 
} else { 
    // It is another day of the week 
} 
+0

ありがとうございました!しかし、影響を受けていない日にlocationManagerを一斉に無効にしようとしています。それは可能ですか? – user913399

+0

これはelseステートメントで行うことができます。あなたのアプリが起動したら、その日をテストし、locationManagerをオンまたはオフにします。 – sch

+0

ユーザーがアプリを起動しないことを選択した場合、これを回避する方法はありませんか?リマインダーアプリのように、特定の日付+場所を設定すると、指定された日付に達するまでgpsが有効になりません。 – user913399

関連する問題