2011-02-06 28 views
6

Làm cách nào để kiểm tra xem người dùng đã tắt Dịch vụ vị trí chưa?Cách kiểm tra xem Dịch vụ vị trí có bật hay không?

Để tôi có thể nhắc họ bật tính năng này để sử dụng ứng dụng của tôi.

Cảm ơn bạn!

+0

bạn nên yêu cầu này trên http://apple.stackexchange.com/ có thể có mặt ở đó bạn sẽ nhận được trả lời nhanh chóng. –

Trả lời

13

Các CLLocationManager cung cấp phương pháp lớp để xác định sự sẵn có của dịch vụ định vị:

- (BOOL)locationServicesEnabled (for < iOS 4.0)

+ (BOOL)locationServicesEnabled (for iOS 4.0 and greater)

+ (CLAuthorizationStatus)authorizationStatus (for iOS 4.2+)

(và những người khác, hãy xem tài liệu)

+0

Tài sản này là những gì tôi đang tìm kiếm! Cảm ơn bạn! =) – nosuic

+6

đảm bảo rằng 'authorizationStatus' yêu cầu iOS4.2 + và' + (BOOL) locationServicesEnabled' yêu cầu iOS4.0 ... Và đối với các phiên bản iOS trước, đó là '- (BOOL) locationServicesEnabled' ... –

3

Nếu ứng dụng của bạn hoàn toàn không thể chạy mà không có Dịch vụ vị trí, thì bạn có thể yêu cầu Dịch vụ vị trí yêu cầu cài đặt/chạy ứng dụng của bạn bằng cách sử dụng Info.plist của ứng dụng. Bạn làm điều này bằng cách thêm khóa UIDeviceCapabilities vào Info.plist của ứng dụng và đặt giá trị tương ứng là "location-services" trừ dấu ngoặc kép. Với Info.plist được định cấu hình theo cách này, nếu Dịch vụ vị trí bị tắt hoặc nếu thiết bị ở chế độ trên máy bay hoặc bất kỳ thứ gì khác đang ngăn việc sử dụng Dịch vụ vị trí trên thiết bị, iOS sẽ nhắc người dùng bật trên Dịch vụ vị trí khi ứng dụng được mở.

EDIT: Thử nghiệm ngắn dường như cho biết rằng iOS không nhắc người dùng trong trường hợp này, vì vậy đây không phải là giải pháp tốt cho bạn.

Để biết thêm thông tin, bạn có thể xem phần Tham chiếu khóa danh sách thuộc tính thông tin của tài liệu dành cho nhà phát triển của Apple.

+0

Cảm ơn bạn rất nhiều về thông tin! – nosuic

1

Sử dụng dưới đây đoạn mã ...

if (![CLLocationManager locationServicesEnabled]) { 


    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Location Service Disabled" 
                message:@"To re-enable, please go to Settings and turn on Location Service for this app." 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 

} 
0

Sử dụng đoạn mã sau, mà sẽ làm việc ngay cả trong iOS 8.

if([CLLocationManager locationServicesEnabled]&& 
    [CLLocationManager authorizationStatus] != kCLAuthorizationStatusDenied) 
{ 
    //...Location service is enabled 
} 
else 
{ 
//...Location service is disabled 
} 
Các vấn đề liên quan