1

theos テンプレートを使用して脱獄された iPhone の通知センターを作成しています (したがって、WeeApp で実行されます)。これは天気ウィジェットで、電話の現在地を取得できるようにして、最寄りの駅から天気を取得できるようにしたいと考えています。現在、次のコードを使用して場所の取得を開始しています。

i_locationManager = [[CLLocationManager alloc] init];
i_locationManager.delegate = self;
i_locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
i_locationUpdated = NO;
[i_locationManager startUpdatingLocation];

そして私にはdidUpdateLocations方法があります。それはすべてうまくいきます。問題は、電話が場所を使用する許可を得るために使用するポップアップにあります. まず、SpringBoard がその場所を使用したいと言っています。代わりにウィジェットの名前を言う方法はありますか?

さらに重要なことは、保存されたアクセス許可が保持されないことです。それらは電話が動作している限り続きますが、通知センターを再起動して再度開くたびに、場所を使用する許可を再度求めます.

もちろん、これは致命的な問題ではありませんが、イライラします。ウィジェットが現在の場所の使用を許可されていることを電話に記憶させる方法はありますか?

4

1 に答える 1

2

これは役立つかもしれません

[CLLocationManager setAuthorizationStatus:YES forBundleIdentifier:@"com.apple.springboard"];

これにより、プログラムで SpringBoard が承認されます。初めてポップアップを表示し、ユーザーが許可した場所に保存できます。その後、場所が必要になるたびに自分で行うことができます。

アプリ名はポップアップで。アプリケーション名を返す UIApplication、SBApplication、NSBundle メソッドをフックしてみてください。それを行うより簡単な方法はないと思います。

于 2013-05-09T00:41:27.900 に答える