2013-08-16 39 views
5

Tôi đang tìm cách tốt nhất để có được vị trí của người dùng. Tôi đã tìm thấy có hai cách chính:Nhận vị trí của người dùng Android

  • Sử dụng com.google.android.gms.location.LocationListener từ Google Chơi Dịch vụ
  • Sử dụng android.location.LocationListener từ API Android

Câu hỏi của tôi rất đơn giản: cái nào là tốt nhất?

Hiện tại, tôi đang sử dụng ứng dụng đầu tiên nhưng tôi đang gặp sự cố: khi sử dụng mạng di động, vị trí của tôi không bao giờ được truy xuất.

Cảm ơn sự giúp đỡ của bạn.

+0

Có một điều cần xem xét thứ ba: 'com.google.android.gms.maps.LocationSource.OnLocationChangedListener'. Nó cũng có phương thức 'onLocationChanged'. – Phil

Trả lời

1

Đề xuất của tôi là đề xuất đầu tiên. com.google.android.gms.location.LocationListener tóm tắt đánh dấu vị trí từ mã của bạn. Hãy xem mã mẫu tại số here. Nó hoạt động tốt cho tôi với mạng di động hoặc wifi.

+0

"abstracts fiding vị trí từ mã của bạn" là lý do duy nhất để thích tùy chọn đầu tiên? Cảm ơn. Tôi đã đọc mã của bạn và tôi đã có một cái gì đó tương tự. –

0

Tôi là một trong những nhà phát triển của new Gps and sensor toolkit app dành cho Android. Chúng tôi đã xem xét api này trong quá trình phát triển, nhưng thấy rằng đối với hầu hết các mục đích sử dụng android.location.LocationListener là phù hợp. Giao diện khác phức tạp hơn và mất nhiều thời gian hơn để triển khai. Tôi đề xuất android.location.LocationListener.

Lớp Location được trao cho bạn bởi giao diện cung cấp nhiều phương pháp mà bạn có thể sử dụng để có được vĩ độ, kinh độ, tốc độ, khoảng cách đến điểm khác, mang, vv ...

Cũng nhìn vào GpsStatus.ListenerGpsStatus.NmeaListener để biết dữ liệu về vệ tinh.

+2

này, đừng quên tải xuống ứng dụng. (** – FutureSci

+0

Bạn đang sai, com.google.android.gms.location.LocationListener dễ sử dụng hơn và tôi không quan tâm đến tốc độ cũng như khoảng cách .. Tôi chỉ đang tìm kiếm vị trí của người dùng một cách dễ dàng nhất –

+0

trước hết, là một vấn đề của ý kiến, thứ hai tất cả bạn cần là Location.getLatitude() vị trí.getLongitude() và điều này có thể được thực hiện trong ít nhất là 11 dòng. LÀM NGHIÊN CỨU CỦA BẠN – FutureSci

2

Mặc dù một bài đăng này thực sự cũ nhưng tôi nghĩ rằng tôi nên trả lời nó để nó rõ ràng khái niệm của tôi về điều này là tốt. Xem các liên kết dưới đây:

https://developers.google.com/maps/documentation/android/location 

Nó nói:

Lưu ý rằng lớp Vị trí của tôi không trả lại bất kỳ dữ liệu. Nếu bạn muốn truy cập dữ liệu vị trí theo lập trình, hãy sử dụng API vị trí.

Vì vậy, tôi nghĩ rằng sử dụng com.google.android.gms.location.LocationListener từ dịch vụ Google Play có thể là một cách tiếp cận dễ dàng hơn nhưng nếu bạn muốn truy cập vào dữ liệu vị trí (chính xác trong trường hợp của tôi) và muốn làm một cái gì đó với nó, tốt hơn là chúng tôi sử dụng android.location.LocationListener từ API Android

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