2011-12-17 42 views
26

Tôi đang viết một ứng dụng iPhone và sử dụng Dịch vụ vị trí. Tôi đang sử dụng phương pháp startMonitoringSignificantLocationChanges trên CLLocationManager. (Theo tôi hiểu, điều này là dành cho các dịch vụ vị trí có độ chính xác, công suất thấp.) Khi tôi xây dựng và khởi chạy ứng dụng của mình trong Trình mô phỏng iOS, nó sẽ làm cho vị trí của tôi tốt. Tuy nhiên, tôi muốn mô phỏng các bản cập nhật cho vị trí ngoài khắc phục ban đầu.Mô phỏng thay đổi vị trí cho `startMonitoringSignificantLocationChanges`

tôi đã nhận thấy hai tùy chọn sau đây:

  • iOS Simulator: Debug> Vị trí trình đơn
  • Xcode 4: Sản phẩm> Debug> Mô phỏng Location đơn

Cả hai làm việc chấp nhận được đối với mô phỏng một sửa chữa ban đầu. (Ví dụ, chọn 'Apple' từ cái cũ, hoặc 'Moscow' từ cái sau.) Tuy nhiên, những thay đổi tiếp theo cho một trong hai thứ này sẽ KHÔNG kích hoạt cập nhật vị trí khác trong ứng dụng mô phỏng.

Điều tôi mong muốn được thông báo khi vị trí mô phỏng thay đổi khi sử dụng startMonitoringSignificantLocationChanges. (iOS Simulator hiện tạo một loạt các bản cập nhật khi tôi sử dụng startUpdatingLocation thay thế.) Điều này giúp bạn dễ dàng kiểm tra các ứng dụng hỗ trợ vị trí mà không cần mang thiết bị ra ngoài trường.

Hai câu hỏi:

  • sự khác biệt giữa hai là gì?
  • Làm cách nào để sử dụng Trình mô phỏng iOS và/hoặc Xcode 4 để mô phỏng một loạt thay đổi vị trí?

Chúc mừng.

+0

PS Tôi đã thực hiện một số chỉnh sửa. Tiêu đề từng là "Vị trí Simulaing: Trình mô phỏng iOS so với Xcode 4." – ocarlsen

Trả lời

36

Nếu bạn muốn thực hiện một ca khúc, bạn có thể tạo một tập tin GPX với waypoints như thế này:

<?xml version="1.0" encoding="UTF-8"?> 
<gpx> 
    <wpt lat="52.373" lon="4.871"></wpt> 
    <wpt lat="52.374" lon="4.872"></wpt> 
    <wpt lat="52.375" lon="4.871"></wpt> 
</gpx> 

Lưu nó như track.gpx. Hãy cẩn thận khi không có khoảng trắng khi bắt đầu.

Khi bạn xây dựng và chạy, có một thanh công cụ ở dưới cùng của Xcode với một mũi tên vị trí (tương tự như một trên iPhone). Nó dành cho "Vị trí mô phỏng". Nhấp vào đó và tải tệp GPX của bạn. Khi ứng dụng của bạn đang chạy trong Trình mô phỏng, dấu chấm màu xanh lam sẽ di chuyển xung quanh. Tôi không nghĩ rằng có một cách để kiểm soát thời gian, do đó, nó cập nhật vị trí của nó mỗi nửa giây hoặc lâu hơn.

Sự khác biệt tôi có thể thấy trong trình đơn Mô phỏng là bạn không thể có bản nhạc tùy chỉnh, chỉ có một điểm tùy chỉnh. Tôi không biết tại sao các tùy chọn menu khác nhau, có thể họ sẽ thêm tùy chọn cho bản nhạc tùy chỉnh trong Trình mô phỏng tại một số thời điểm.

+0

Tuyệt. Hoạt động tốt với 'startUpdatingLocation'. Tuy nhiên, không có cập nhật vị trí nào ngoài sửa lỗi ban đầu khi sử dụng 'startMonitoringSignificantLocationChanges'. – ocarlsen

+0

Có thể bạn phải rời khỏi khu vực bạn đang theo dõi để ping lại. Bạn đã xem video WWDC sử dụng bản nhạc GPX chưa? Anh ta sử dụng khu vực theo dõi ở đó. –

+0

Vâng, tôi muốn mô phỏng động thái đó. :) Nó mát mẻ, có lẽ đây chỉ là không có sẵn. – ocarlsen

9

FWIW, việc giám sát các thay đổi vị trí quan trọng được gắn gần như độc quyền đối với triangulation tháp di động và handoffs. Cách này được xử lý trong trình mô phỏng có lẽ khác nhiều so với trên thiết bị. Ngay cả giám sát khu vực cũng nhận được thêm tiền thưởng của Wifi và các ứng dụng khác sử dụng vị trí để nhận các cập nhật thường xuyên hơn.

Tôi đoán đây chỉ là cách trình mô phỏng hoạt động, ngay cả khi đi qua các vị trí cách xa nhau một cách cực kỳ và kích hoạt một cách hợp lý, đó không phải là cách cập nhật được xử lý. Không có handoff tháp di động trong mô phỏng, do đó không có cách nào để thực sự kiểm tra những thay đổi đáng kể.

0

Để theo dõi @ Nevan-vua trả lời như cho lý do tại sao không có cập nhật khi sử dụng startMonitoringSignificantLocationChanges

Xem của Apple Note cho func startMonitoringSignificantLocationChanges()

Apps có thể mong đợi một thông báo ngay khi thiết bị di chuyển 500 mét trở lên từ thông báo trước đó của nó. Không nên mong đợi các thông báo thường xuyên hơn cứ sau 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.

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