2011-08-05 38 views
10

Tôi muốn gửi vị trí hiện tại của mình tới dịch vụ web php sau mỗi 5 phút ngay cả khi ứng dụng của tôi đang chạy ẩn. Tôi cố gắng làm điều này nhưng nó hoạt động tốt khi ứng dụng của tôi ở trạng thái chạy nhưng khi tôi đặt ứng dụng này ở chế độ nền, nó dừng gửi dữ liệu, vì vậy hãy cho bạn biết làm thế nào tôi có thể chạy ứng dụng của tôi ở chế độ nền.Làm cách nào để chạy ứng dụng GPS của tôi ở chế độ nền?

Trả lời

8

Bằng cách "chạy trong nền", bạn có nghĩa là chạy khi ở dưới màn hình khóa không? Nếu trường hợp này xảy ra, thì bạn cần phải đặt PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled;

Bài đăng Running a Windows Phone Application under the lock screen của Jaime Rodriguez bao gồm chủ đề này.

Tuy nhiên, nếu bạn đang nói về việc chạy một ứng dụng tiếp tục chạy trong khi người dùng sử dụng các ứng dụng khác trên thiết bị thì điều này là không thể. Trong bản xây dựng Mango của hệ điều hành, bạn có thể tạo các tác nhân nền, nhưng chúng chỉ chạy 30 phút một lần và chỉ trong 15 giây như được mô tả trên MSDN.

Có một yêu cầu trên diễn đàn UserVoice chính thức để phát triển Windows Phone thành Provide an agent to track routes, nhưng ngay cả khi được chấp nhận, điều này sẽ không khả dụng trong một thời gian.

+0

Như đã nói, trong xoài, bạn có thể truy cập dịch vụ vị trí từ tác vụ nền nhưng vị trí được lưu trong bộ nhớ cache và chỉ cập nhật sau mỗi 15 phút. –

+0

Và RTM của Mango hỗ trợ ResourceIntensiveTask trông đầy hứa hẹn nhưng hóa ra lại vô dụng. –

4

Ứng dụng theo dõi là phần lớn những gì tôi làm để kiếm sống và triển vọng sử dụng WP7 như thế này là lý do chính tôi có được.

Từ góc độ tiêu thụ điện năng, truyền dữ liệu là điều đắt nhất bạn có thể làm, theo sát bằng cách lấy mẫu GPS và gia tốc kế.

Để tạo dấu vết phù hợp với đường, bạn cần tốc độ lấy mẫu cao hơn. WP7 sẽ không cho phép bạn lấy mẫu nhiều hơn một lần mỗi giây. Đây là (chỉ vừa đủ) đủ nhanh để theo dõi xe cơ giới, và ở mức tiêu thụ điện năng này, pin sẽ tồn tại trong khoảng một giờ giả sử bạn ghi dữ liệu trên điện thoại và không cố gắng truyền dữ liệu đó.

Bạn cũng sẽ thấy rằng nếu bạn truyền cho mỗi mẫu, khoảng thời gian lấy mẫu của bạn sẽ ít nhất 15 giây. Việc chạy cuộc gọi web trên một chuỗi khác sẽ không giúp ích gì vì sẽ mất hơn một giây để hoàn thành và bạn sẽ hết ổ cắm trong vòng chưa đến một phút với khoảng thời gian mẫu thứ hai.

Có giải pháp cho tất cả các vấn đề này. Ví dụ, trong một chiếc xe có động cơ, bạn có thể kết nối với sức mạnh của xe và chạy nóng. Bạn có thể bó và ghi dữ liệu của bạn trên một chuỗi nền.

Tuy nhiên, đây chỉ là những vấn đề cơ bản mà mọi trình thiết kế theo dõi phải đối mặt. Thú vị hơn là các câu hỏi về sự gần gũi trong không gian và thời gian, đo lường độ lệch từ một tuyến đường, cách xác định các tuyến và đường địa lý theo cách phụ thuộc thời gian, cách liên kết chúng thành các bộ được đặt tên cho mục đích đánh giá quy tắc và cách kết hợp các quy tắc các tuyến đường và địa hình.

Và sau đó có phân cụm định kỳ, giới thiệu tất cả các cơn ác mộng về lịch là quá nhiều cho nhà phát triển phần mềm máy tính để bàn trung bình của bạn. Để áp dụng giới hạn tốc độ cho khu vực trường học, bạn cần biết múi giờ, tiết kiệm ban ngày, hai lần bắt đầu và hai lần dừng và ngày bắt đầu và ngày kết thúc cho các ngày nghỉ học ở khu vực đó. Nếu bạn chỉ làm điều này cho vui hoặc như một số loại dấu vết đi bộ thì khoảng thời gian năm phút sẽ áp đặt nhiều nhu cầu năng lượng nhẹ hơn so với lấy mẫu thứ hai, nhưng tôi vẫn đề xuất hàng loạt và bùng nổ vì điều đó có nghĩa là bạn có thể theo dõi các vị trí không có dấu phẩy.

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