Tôi đang cố gắng thiết lập ứng dụng có thể kiểm tra vị trí của mọi người dưới nền, xem họ có ở vị trí cụ thể hay không và gửi ping đến máy chủ nếu có. Chúng tôi không muốn tiêu hao năng lượng của người dùng, vì vậy chúng tôi đang cố gắng tìm ra giải pháp tốt nhất.CLLocationManager geo-fencing/startMonitoringForRegion: vs. startMonitoringForSignificantLocationChanges: so với 10 phút startUpdating calls
Tôi đã đọc rất nhiều và tôi không tìm thấy nhiều thông tin về các phương pháp này. Tôi sẽ đi qua các ưu và nhược điểm như tôi hiểu họ ngay bây giờ
startMonitoringForSignificantChanges
Mô tả: Dựa tắt của wi-fi và tháp di động làm thay đổi hệ thống tỉnh dậy ứng dụng.
Docs:
Apps có thể mong đợi một thông báo ngay khi thiết bị di chuyển 500 mét hoặc nhiều từ thông báo trước đó. Không nên mong đợi các thông báo thường xuyên hơn một lần sau mỗi năm phút. Nếu thiết bị có thể truy xuất dữ liệu từ mạng, trình quản lý vị trí có nhiều khả năng cung cấp thông báo kịp thời hơn.
Ưu điểm:
- Hầu hết pin hiệu quả
Nhược điểm:
- Phụ thuộc vào wi-fi tháp/tế bào thay đổi
- Chỉ có thể giả định rằng đây sẽ là được gọi là mỗi 200m đến 2km (nếu không nhiều hơn ở một số khu vực nhất định)
- More on accuracy
- Vì vậy, không phù hợp và không chính xác
10-minute start-updating hoặc "n phút cập nhật":
Mô tả: Đây về cơ bản yêu cầu ứng dụng cho nhiều thời gian hơn, khi thêm thời gian là khoảng hết hạn, nó gọi [self.locationManager startUpdating], lấy vị trí và mở rộng chuỗi nền trong 10 phút nữa.
Ưu điểm:
- Phù
- Có thể chính xác như bạn muốn nó được như một cách nhất quán như bạn muốn nó
Nhược điểm:
- Phải làm một cuộc gọi cứ 10 phút hoặc ít hơn để giữ cho ứng dụng chạy trên nền (tức là n không thể lớn hơn 10 cho các cuộc gọi)
Câu hỏi: Hiệu ứng này có tác dụng gì trên pin? Có đánh thức GPS và tắt nó làm tổn thương pin nhiều hơn? Tôi không thể tưởng tượng chạy một kiểm tra vị trí ngắn trong nền sẽ tiêu hao pin nhiều ... nhưng sau đó một lần nữa, tôi không biết những gì đi vào powering lên GPS và nhận được một tín hiệu có thể sử dụng.
startMonitoringForRegion (geo-rào):
một cách đơn giản, ứng dụng của bạn được đánh thức khi bạn tham gia vào một khu vực được xác định trước. Đây là kỳ quặc của họ, nó là gần đây hơn và có ít tài liệu về nó. Tôi không thể tìm thấy mô tả hay về cách "hệ thống giám sát" đường biên giới. Đối với tất cả tôi biết nó là một số thuật toán thực sự thông minh, hoặc họ liên tục ping GPS mà sẽ làm cho nó ít hiệu quả hơn so với các phương pháp khác để làm điều này.
Ưu điểm:
- đơn giản thực hiện
- Được quản lý bởi hệ thống, do đó bạn không cần phải phát minh của riêng bạn ad-hoc geo-hàng rào Chỉ gây nên trên ranh giới qua ... không có dữ liệu không cần thiết chỉ cần ném ra để đổi lấy một pin nhấn
- do đó, nên là tốt nhất cho các loại điều này, chính xác, bởi hệ thống quản lý
Nhược điểm:
- People question its effectiveness
- xung đột lớn về việc có hay không nó là tốt cho tuổi thọ pin hoặc nếu nó cống tuổi thọ pin khủng khiếp.
- Hệ thống giám sát điều này như thế nào !?
- Về cơ bản, hành vi không xác định.
Tôi đoán câu hỏi của tôi sẽ tóm tắt về cách startMonitoringForRegion: so sánh với các phương pháp kiểm tra vị trí người dùng khác trong nền khi nói đến tuổi thọ pin, tính nhất quán và độ chính xác. Có ai kiểm tra kỹ lưỡng điều này không? Hoặc sử dụng nó trong ứng dụng của họ và nhận được ít nhất một số phản hồi? Có khả năng, vì mục đích của tôi, sự cân bằng giữa đấu nối địa lý và phương pháp cập nhật 10 phút. (Cũng được đưa ra những gì Apple đã công khai nói về iOS7 sẽ có một số nhiệm vụ nền ... liệu điều này có thay đổi tính toán cho sự cân bằng giữa hai phương thức này không?) Có ai có ý tưởng về cách hai so sánh này?
Cảm ơn bạn rất nhiều! Nhìn về phía trước để xem liệu chúng ta có thể tìm hiểu cách so sánh các phương pháp này hay không.
+1 để biết tổng quan gọn gàng –