15

Đầu để có được sử dụng hiện tại vị trí tôi đã sử dụng LocationManager:Có lợi thế nào khi sử dụng FusedLocationProviderApi trên LocationManager không?

LocationManager locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE); 

if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
    location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 

} else if (locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { 
    location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
} 

Nó rất dễ dàng để đọc và mã rất đơn giản.

Nhưng tôi đã nhận thấy rằng Google gần đây đã phát hành New Client API Model in Google Play Services và gợi ý để sử dụng FusedLocationProviderApi trông giống như phức tạp hơn nhiều, nó là async, nó đòi hỏi phải xử lý callbacks, vv

Có bất kỳ lợi thế của việc sử dụng FusedLocationProviderApi qua LocationManager?

+0

Nó cung cấp độ chính xác tốt hơn với ít hao pin hơn, vì nó chuyển đổi giữa vị trí dựa trên GPS và WiFi. Để tránh sự phức tạp, tôi khuyên bạn nên sử dụng thư viện này: https://github.com/mcharmas/Android-ReactiveLocation – cYrixmorten

Trả lời

15

FusedLocationProvider sử dụng kết hợp phần cứng để xác định vị trí dựa trên ngữ cảnh của yêu cầu, nghĩa là nó được tối ưu hóa rõ ràng cho bạn. Nó cũng sẽ lưu trữ các vị trí được ghi lại giữa các ứng dụng để tránh việc không cần thiết để xác định thông tin vị trí. Vì vậy, nếu người dùng có nhiều ứng dụng nhận biết vị trí, họ có khả năng tránh đánh thuế thiết bị (và chờ) để chụp vị trí vì có thể đã được lưu vào bộ nhớ cache.

Trong khi Trình quản lý vị trí của ol sẽ đủ trong các tình huống nhỏ, một lần, bạn chắc chắn nên xem xét giải pháp thay thế mới hơn vì lợi ích có thể tuyệt vời và công việc để thực hiện dễ dàng.

Bạn cũng có thể sử dụng dịch vụ này vì Google Play Services được cập nhật thường xuyên trên các thiết bị và liên tục bao gồm các cải tiến cho các tính năng dựa trên vị trí (và hơn thế nữa).

Một liên kết đến một lời giải thích của FusedLocationProvider lúc khởi động: https://www.youtube.com/watch?v=Bte_GHuxUGc

2

Trong một số tình huống FusedLocationProvider thực hiện khủng khiếp. Ví dụ: nếu bạn muốn theo dõi đường dẫn của mình trên bản đồ, nó có thể quyết định chuyển đổi giữa dữ liệu GPS và dữ liệu Wifi. Để tính toán khoảng cách chính xác được thực hiện, tốt hơn hết là buộc phải đọc GPS với LocationManager, đặc biệt nếu bạn cũng muốn theo dõi độ cao mà wifi không cung cấp.

+0

Trong một dự án của tôi, tôi cần chụp vị trí của người dùng sau mỗi khoảng thời gian 10 giây. Tôi đã sử dụng nhà cung cấp GPS và Mạng. Đường dẫn của tôi là đường gần sông. Khi tôi vẽ âm mưu lat dài trong bản đồ google, nó cho tôi thấy 5-6mts khác nhau lat dài hơn lat thực tế dài và rơi xuống sông. Theo kết luận cuối cùng thử nghiệm senario này là con đường của người dùng là trên sông đó là sai trong tương đối. Vì vậy, tôi có thể sử dụng hợp nhất trong tình huống của mình. Ngay bây giờ tất cả các công trình tốt bằng cách sử dụng hợp nhất nhưng theo bình luận của bạn tôi có nghi ngờ vì vậy xin đề nghị tôi. Trong trường hợp của tôi, tôi yêu cầu lat dài thích hợp. –

+0

Trong thử nghiệm của tôi, và bởi những gì tôi đã đọc tôi nghĩ rằng nếu bạn muốn theo dõi một con đường chính xác, nó tốt hơn để buộc GPS với quản lý vị trí. Nếu tuổi thọ pin không phải là một mối quan tâm lớn nhất của nó.Tôi đã nhận thấy rằng các ứng dụng chất lượng cao khác như S-Health hoặc MapMyRun vv dường như sử dụng trình quản lý vị trí, vì các bản nhạc của họ trông rất giống với tôi khi tôi chạy các ứng dụng này cùng lúc với tôi –

+0

. không chính xác trong đó. Tôi dành nhiều giờ để thử nghiệm và tôi cũng thử các thiết bị khác nhau. –

0

Chỉ cần nhớ rằng FusedLocationProvider sử dụng LocationManager dưới nắp để ít nhất có được điểm GPS. Nó có thể thực hiện quét Wi-Fi và xem xét kết quả để xác định vị trí, thay vì sử dụng nhà cung cấp Mạng, nhưng không có bất kỳ tài liệu nào về điều này mà tôi biết.

Trừ khi bạn không thể hoặc không muốn sử dụng FusedLocationProvider, tôi khuyên bạn nên sử dụng nó.

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