2010-11-22 3 views
16

현재 내 응용 프로그램은 현재 위치 사용 권한을 한 번만 묻습니다. 사용자가 허용하지 않으면 그는 일반 설정에서 위치 경고를 재설정하지 않는 한 다시 묻지 않습니다. 나중에이 권한을 부여 할 수있는 기회를 사용자에게 제공하고 싶습니다. 즉, 특정 버튼을 누르면 대화 상자가 다시 나타납니다. 이것이 가능한가?CLLocation 다시 권한을 요청하십시오

귀하의 조언에 감사드립니다.

+0

아마도 그렇지 않습니다. 그것이 위치 경고를 재설정해야하는 요지입니다. – ryyst

답변

9

새 응답 : 이렇게하면 이전 아이폰 OS 버전을 지원하는 경우

NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
[[UIApplication sharedApplication] openURL:url]; 

이 처리 할 수 ​​있는지 확인하려면 :

를 지금 아이폰 OS 8 당신은 프로그래밍 방식으로 장치 설정 응용 프로그램을 열 수 있습니다

이전 답변 : 강제로 기본 팝업이 나타나도록 설정하고 (사용자가 설정 페이지로 이동할 수 있음) 알 수있는 방법이 없습니다. 위치 서비스는 전 세계적으로 장치 수준 여부를 사용할 수있는 경우

+(CLAuthorizationStatus)authorizationStatus 

가 또한 확인할 수 있습니다 : CLLocationManager :

당신은 사용자가 앱의 위치 서비스를 허용 한 경우를 결정하기 위해 다음과 같은 방법을 사용할 수 있습니다 너무 : CLLocationManager : 위치 서비스 장치에 가능하게하는 경우

+(BOOL)locationServicesEnabled 
+0

이것은 부분적으로 만 정확합니다. locationServicesEnabled는 앱의 위치 권한이 아니라 기기 설정 만 알려줍니다. – Acey

14

[CLLocationManager locationServicesEnabled]는 당신을 알려줍니다.

this에 따른 문서.

[CLLocationManager authorizationStatus]

결과는 당신이 settings.app 그를 전송하여 위치 서비스의 사용을 허용하는 사용자를 말할 수 kCLAuthorizationStatusDenied 경우 이러한

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

중 하나를 반환합니다

관련 문제