3

ユーザーが自分の位置を確認するためにアプリを承認したかどうかを知りたいです。「location = nil」の場合、ユーザーが許可されていないというのは本当ですか?

coreLocationManager = [[CLLocationManager alloc] init];
[coreLocationManager setDistanceFilter:kCLDistanceFilterNone];
[coreLocationManager setDesiredAccuracy:kCLLocationAccuracyBest];
location = [coreLocationManager location];
[coreLocationManager startUpdatingLocation];
4

2 に答える 2

12

ユーザーが自分の位置を確認するためにアプリケーションを承認したかどうかを知りたい場合は、使用する必要があります

+(CLAuthorizationStatus)authorizationStatus;

このクラス メソッドは、CLAuthorizationStatusこれらの値を想定できる定数を返します。

typedef enum {
   kCLAuthorizationStatusNotDetermined = 0,
   kCLAuthorizationStatusRestricted,
   kCLAuthorizationStatusDenied,
   kCLAuthorizationStatusAuthorized
} CLAuthorizationStatus;

最後に、アプリが承認されているかどうかを確認するには、次のようにします。

if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized)
{
    // Your app is authorized!
}

これが役立つことを願っており、ドキュメントで詳細情報を見つけることができます。

于 2013-10-01T16:50:57.673 に答える
3

authorizationStatusこれを行うには、メソッドを使用できます。

以下を使用できます。

if([CLLocationManager locationServicesEnabled] && 
   [CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized)
{
  // Do your code
}

locationServicesEnabledデバイスで位置情報サービスが有効になっているかどうかを確認します。

参照CLLocationManager

authorizationStatus

位置情報サービスを使用するためのアプリケーションの承認ステータスを返します。 + (CLAuthorizationStatus)authorizationStatus

戻り値

アプリケーションが位置情報サービスの使用を承認されているかどうかを示す値。討論

特定のアプリケーションの承認ステータスは、システムによって管理され、いくつかの要因によって決定されます。アプリケーションは、ユーザーによって位置情報サービスを使用することを明示的に承認されている必要があり、位置情報サービス自体が現在システムに対して有効になっている必要があります。アプリケーションが最初に位置情報サービスを使用しようとすると、ユーザー認証の要求が自動的に表示されます。可用性

Available in iOS 4.2 and later.

CLLocationManager.h で宣言

于 2013-10-01T16:51:27.920 に答える