2014-07-20 12 views
5

Tôi đang làm việc với Geofence API Sample application Tôi đã chạy ứng dụng và dường như hoạt động tốt. Tôi đã thực hiện các sửa đổi để nó sử dụng BroadcastReceiver thay vì IntentService.Ứng dụng mẫu Android Geofencing chỉ hoạt động nếu một ứng dụng khác đang mở bằng GPS

Nhưng tôi sẽ chỉ nhận được thông báo nếu tôi có một số ứng dụng khác đang mở đang sử dụng GPS như Maps hoặc ứng dụng GPS Tester.

Nếu tôi không có một trong các ứng dụng đó đang mở và tôi đi bộ vào khu vực địa lý, không có gì xảy ra. Nhưng ngay sau khi tôi khởi động một trong số họ, tôi sẽ nhận được thông báo trong vòng vài giây.

+0

Bạn có gặp phải sự cố tương tự với ứng dụng gốc chưa được sửa đổi không? Hay điều này liên quan đến sự thay đổi của bạn khi sử dụng một 'BroadcastReceiver'? Và, nếu có, khi bạn nói "nhận thông báo", bạn thử nghiệm cụ thể như thế nào? – CommonsWare

+0

@CommonsWare Có kết quả tương tự với ứng dụng chưa sửa đổi (lưu ý rằng tôi phải thêm thẻ meta-data vào tệp kê khai ứng dụng để làm cho nó chạy hoàn toàn. Đó là thay đổi duy nhất từ ​​cách tôi tải xuống). Tôi thực sự chuyển sang máy thu phát vì tôi đang tìm kiếm để khắc phục sự cố này và tìm thấy một loạt các đề xuất mà Người nhận đã giúp mọi người nhận được cuộc gọi lại địa lý hoạt động nhất quán hơn. Mã mẫu (và bộ nhận của tôi) gửi một thông báo tới thanh thông báo khi kích hoạt bộ đếm địa lý kích hoạt. Vì vậy, thử nghiệm duy nhất của tôi là liệu tôi có nhận được thông báo đó hay không. – FoamyGuy

+0

Nếu bạn đang đi bộ vào khu vực địa lý, hãy thử xác định một khu vực lớn hơn và ở trong một phương tiện di chuyển. Tôi sẽ ngạc nhiên nếu một geofence đăng ký sẽ kích hoạt nhiều hoạt động GPS dựa trên phong trào hạn chế, và các nhà cung cấp mạng có thể là quá không chính xác cho một khu vực địa lý nhỏ. – CommonsWare

Trả lời

2

Tôi đã kết thúc việc tạo một dịch vụ buộc GPS phải hoạt động bằng cách yêu cầu cập nhật vị trí trong một khoảng thời gian tương đối nhanh.

Trong khi điều này được thừa nhận là một công việc kém xung quanh cho một ứng dụng "thực". Nó làm việc cho mục đích của tôi. Trong đó tôi cần để có thể trình bày một bằng chứng làm việc về khái niệm cho khán giả, điều này cản trở khả năng của tôi sử dụng các điểm địa lý được lan rộng ra ngoài.

2

Thậm chí tôi cũng đã có một cuộc đấu tranh với việc nhận thông báo Geofence ngay khi tôi vào Geofence hoặc Thoát khỏi thông báo cho đến khi tôi tìm thấy Thư viện vị trí thực sự tốt đẹp được gọi là little-fluffy-location-library. cho ứng dụng của bạn theo định kỳ.

Theo Tài liệu nó nói rằng:

Thư viện hoạt động bằng cách sử dụng vị trí người nghe thụ động Froyo của (chỉ có thể với Android 2.2 trở lên, do vậy tại sao nó hoạt động tốt nhất với nó), mà nghe cập nhật vị trí theo yêu cầu của các ứng dụng khác trên điện thoại của bạn. Vị trí chính xác nhất được phát tới ứng dụng của bạn khoảng 15 phút một lần. Nếu bản cập nhật vị trí chưa được nhận từ ứng dụng khác trong một giờ, thư viện sẽ buộc bản cập nhật vị trí của riêng nó.

Tôi nghĩ bạn nên thử với Thư viện này và cho tôi biết nếu nó phù hợp với bạn !!

+0

Bạn có biết thư viện này vẫn được yêu cầu với phiên bản Android API hiện tại không? Tôi đang gặp vấn đề tương tự. GeoFence chỉ kích hoạt khi một ứng dụng khác như Google Maps đang sử dụng dịch vụ vị trí. –

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