2013-07-24 26 views
11

Tôi đã lập trình Android từ các nền tảng khác mà tôi đã sử dụng với GPS. trên platfroms khác tôi đã truy cập vào GPS HW (Tôi đã có một trình điều khiển GPS cấp thấp) và do đó tôi có thể nhận được cập nhật GPS 5 lần mỗi giây và thậm chí nhiều hơn Bây giờ tôi làm việc với Samsung Galaxy S2 (mà nó là rõ ràng với tôi rằng GPS của nó là rất mạnh và có thể cung cấp nhiều thông tin cập nhật mỗi giây Hiện nay khi tôi đặt nhà cung cấp GPS để cung cấp thông tin cập nhật trong khoảng cách tối thiểu và thời gian tối thiểu như thế này:nhận được tỷ lệ cập nhật GPS cao nhất từ ​​Phần cứng GPS trong Android của tôi

mlocManager.requestLocationUpdates( 
    LocationManager.GPS_PROVIDER, 0, 0, mlocListener 
); 

tôi nhận được 1 bản cập nhật mỗi giây (hoặc 800ms như khoảng cách nhỏ nhất giữa hai bản cập nhật) là quá thấp cho ứng dụng của tôi.Có cách nào để buộc GPS HW báo cáo cập nhật nhiều hơn bằng cách nào đó không? Tôi đoán nó không được tiếp xúc với người dùng nhưng vẫn còn một số cách để truy cập vào sổ đăng ký của GPS HW bằng cách nào đó?

+0

Tôi nghi ngờ rằng bạn có thể nhận được nhiều hơn 1 hz. Hơn nữa tôi nghi ngờ rằng ứng dụng của bạn không thể làm việc với inters 1s, Điều gì về interpolating? – AlexWien

+0

Tôi có một GPS Bluetooth khác từ QStarz sẽ làm 10Hz. – user2613743

+0

Thật vậy, nội suy là một giải pháp. Tôi đang cố gắng theo dõi vị trí xe hơi, vì vậy 1 giây trong 100kmh là ~ 30 mét và tôi cần độ chi tiết tốt hơn. Ngoài ra, tôi muốn biết (nếu bất kỳ cơ thể biết ở đây) sự chậm trễ của việc tính toán GPS là gì. Ý tôi là, khi nó báo cáo vị trí, bao nhiêu thời gian trôi qua từ thời điểm chúng tôi ở vị trí này. điều này cũng cần nội suy để hiểu chúng ta đang ở đâu bây giờ chẳng hạn. vì vậy nếu đó cũng là trong khu vực của 1 giây hoặc một nửa thứ hai vì vậy chúng tôi phải nội suy 2 giây cho nơi chúng tôi đang có bây giờ và điều này thực sự là xấu cho tôi. – user2610687

Trả lời

3

Hiện tại, bạn không thể nhận được bản cập nhật nhanh hơn một lần mỗi giây trong hầu hết điện thoại. Đây là giới hạn gps phần cứng.

Thông thường trong hầu hết các điện thoại, nó ở mức 1Hz.

Tất cả phụ thuộc vào phần cứng và kịch bản mà bạn đang sử dụng (trong nhà, ngoài trời)

Nhưng một lần nữa, bạn có thể kiểm sử dụng

LocationRequest setFastestInterval (long millis) 

Điều này cho phép ứng dụng của bạn một cách thụ động có được địa điểm với tốc độ nhanh hơn là tích cực mua lại địa điểm, tiết kiệm điện.

Không giống như setInterval (dài), thông số này là chính xác. Ứng dụng của bạn sẽ không bao giờ nhận được bản cập nhật nhanh hơn giá trị này.

Phương pháp này đặt tốc độ nhanh nhất theo mili giây mà tại đó ứng dụng của bạn có thể xử lý cập nhật vị trí. Bạn cần đặt tỷ lệ này vì các ứng dụng khác cũng ảnh hưởng đến tốc độ gửi bản cập nhật. Dịch vụ vị trí gửi các bản cập nhật với tốc độ nhanh nhất mà bất kỳ ứng dụng nào được yêu cầu bằng cách gọi LocationRequest.setInterval().

Nếu tốc độ này nhanh hơn ứng dụng của bạn có thể xử lý, bạn có thể gặp phải sự cố với lỗi nhấp nháy giao diện người dùng hoặc tràn dữ liệu.

+0

bạn có thể đăng liên kết đến tài nguyên nơi bạn có thông tin về giới hạn phần cứng gps không? –

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