2009-12-15 37 views
7

Lần đầu tiên ứng dụng cố gắng nhận vị trí người dùng được nhắc với "Muốn sử dụng vị trí hiện tại của bạn" và họ có thể nhấn Không cho phép hoặc không. Có cách nào để tìm hiểu xem người dùng đã nhấn ok hay không cho phép? Tôi đang cố gắng để có MKMapView hiển thị vị trí hiện tại của người dùng nhưng tôi muốn thực hiện các hành động khác nhau dựa trên lựa chọn của người dùng.kiểm tra xem người dùng có cho phép ứng dụng sử dụng vị trí của họ

Thông thường bạn sẽ nghĩ rằng sẽ có một đại biểu để có được thông tin này nhưng dường như không có.

Cảm ơn trước sự giúp đỡ của bạn.

Trả lời

16

Cuộc gọi đầu tiên của bạn để nhận vị trí của người dùng sẽ không thành công với lỗi cho bạn biết người dùng đã từ chối dịch vụ vị trí. Phương thức CLLocationManagerDelegatedidFailWithError của bạn sẽ được gọi, như sau. (Các hằng số được xác định trong CLError.h)

- (void)locationManager:(CLLocationManager*)aManager didFailWithError:(NSError*)anError 
{ 
    switch([anError code]) 
    { 
    case kCLErrorLocationUnknown: // location is currently unknown, but CL will keep trying 
    break; 

    case kCLErrorDenied: // CL access has been denied (eg, user declined location use) 
    message = @"Sorry, flook has to know your location in order to work. You'll be able to see some cards but not find them nearby"; 
    break; 

    case kCLErrorNetwork: // general, network-related error 
    message = @"Flook can't find you - please check your network connection or that you are not in airplane mode"; 
    } 
} 
+1

chỉ là những gì tôi đang tìm kiếm! – Codezy

+0

Điều này dường như không phải là trường hợp với startMonitoringSignificantLocationChanges –

Các vấn đề liên quan