1

ユーザーの現在地の使用を中心としたコア機能を備えたアプリがあります。マップ上でユーザーの近くにあるオブジェクトを表示します。ロケーションマネージャーは作成せず、マップビューを使用します。これはうまく機能しますが、現在、アプリが位置情報サービスの必要性をユーザーに正しく警告していることを確認しようとしています。私が今していることは、applicationDidBecomeActiveメソッドで新しい位置情報マネージャーを作成し、アプリが開いたとき、またはこのように位置情報サービスをオフにしてバックグラウンドから戻ったときに、ユーザーからの許可の要求をトリガーするために更新を開始しようとしています:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    CLLocationManager *manager = [[CLLocationManager alloc] init];
    if([CLLocationManager locationServicesEnabled])
    {
        NSLog(@"yes");
    }
    [manager startUpdatingLocation];
}

質問1:これはそれを行うための良い方法ですか?

質問2:アプリのあらゆる側面で位置情報サービスが使用されているため、ユーザーが位置情報サービスの使用を希望するメッセージが表示されたときに[許可しない]を選択した場合、アプリを閉じるのが適切でしょうか。

位置情報サービスやユーザーへの通知やリクエストを扱った経験からのその他のアドバイスをいただければ幸いです。

4

2 に答える 2

1

アプリを「閉じる」ことはできません。Appleはそれを許可しておらず、実際には「終了」するためのパブリックAPIはありません。

代わりにできることは、CoreLocationの許可なしに正しく動作しないことを説明する画面全体を引き継ぐビューを表示することです。たぶん、CLLocationManagerに再度許可を求めるボタンを作成するボタンがあっても。

于 2011-06-03T19:25:19.380 に答える
0

プログラムでアプリを閉じることはAppleのガイドラインに違反しており、そうすると拒否される可能性があります。

于 2011-06-03T19:21:39.490 に答える