Khóa học lập trình Android giúp bạn dễ dàng xây dựng các ứng dụng nhận biết vị trí mà không cần phải tập trung vào các chi tiết của công nghệ vị trí cơ bản.
Điều này trở nên khả thi với sự trợ giúp của các dịch vụ Google Play , tạo điều kiện bổ sung nhận thức về vị trí cho ứng dụng của bạn với tính năng theo dõi vị trí tự động, định vị địa lý và nhận dạng hoạt động.
Hướng dẫn này chỉ cho bạn cách sử dụng Dịch vụ vị trí trong APP của bạn để có được vị trí hiện tại, nhận cập nhật vị trí định kỳ, tra cứu địa chỉ, v.v.
Các Location đối tượng đại diện cho một vị trí địa lý mà có thể bao gồm một vĩ độ, kinh độ, tem thời gian, và các thông tin khác như mang, độ cao và vận tốc. Có các phương pháp quan trọng sau mà bạn có thể sử dụng với đối tượng Vị trí để nhận thông tin cụ thể về vị trí
Bạn nên tạo ứng dụng khách vị trí trong phương thức onCreate () của lớp hoạt động, sau đó kết nối nó trong onStart () , để Dịch vụ vị trí duy trì vị trí hiện tại trong khi hoạt động của bạn hiển thị đầy đủ.
Có các phương thức getter tương đương có sẵn mà bạn có thể kiểm tra trong tài liệu chính thức của Android.
Bây giờ, ví dụ, nếu ứng dụng của bạn muốn xác định vị trí có độ chính xác cao, thì nên tạo một yêu cầu vị trí với setP Warriority (int) được đặt thành PRIORITY_HIGH_ACCURACY và setInterval (dài) thành 5 giây.
Khóa học lập trình Android Sau đây là nội dung của tệp hoạt động chính được sửa đổi MainActivity.java.
Điều này trở nên khả thi với sự trợ giúp của các dịch vụ Google Play , tạo điều kiện bổ sung nhận thức về vị trí cho ứng dụng của bạn với tính năng theo dõi vị trí tự động, định vị địa lý và nhận dạng hoạt động.
Hướng dẫn này chỉ cho bạn cách sử dụng Dịch vụ vị trí trong APP của bạn để có được vị trí hiện tại, nhận cập nhật vị trí định kỳ, tra cứu địa chỉ, v.v.
![]() |
| Khóa học lập trình Android |
Đối tượng vị trí
Các Location đối tượng đại diện cho một vị trí địa lý mà có thể bao gồm một vĩ độ, kinh độ, tem thời gian, và các thông tin khác như mang, độ cao và vận tốc. Có các phương pháp quan trọng sau mà bạn có thể sử dụng với đối tượng Vị trí để nhận thông tin cụ thể về vị trí
| Sr.Không. | Phương pháp & Mô tả |
|---|---|
| 1 | float distanceTo (Vị trí số phận) Trả về khoảng cách gần đúng tính bằng mét giữa vị trí này và vị trí đã cho. |
| 2 | float getAccuracy () Lấy độ chính xác ước tính của vị trí này, tính bằng mét. |
| 3 | nhân đôi getAltitude () Lấy độ cao nếu có, tính bằng mét trên mực nước biển. |
| 4 | float getBear () Nhận mang, tính bằng độ. |
| 5 | gấp đôi getLatitude () Lấy vĩ độ, tính bằng độ. |
| 6 | tăng gấp đôi độ dài () Lấy kinh độ, tính bằng độ. |
| 7 | float getSpeed () Nhận tốc độ nếu nó có sẵn, tính bằng mét / giây trên mặt đất. |
| số 8 | boolean hasAccuracy () Đúng nếu vị trí này có độ chính xác. |
| 9 | boolean hasAltitude () Đúng nếu vị trí này có độ cao. |
| 10 | boolean hasBear () Đúng nếu vị trí này có một mang. |
| 11 | boolean hasSpeed () Đúng nếu vị trí này có tốc độ. |
| 12 | khoảng trống thiết lập lại () Xóa nội dung của vị trí. |
| 13 | void setAccuracy (độ chính xác float) Đặt độ chính xác ước tính của vị trí này, mét. |
| 14 | void setAltitude (độ cao gấp đôi) Đặt độ cao, tính bằng mét trên mực nước biển. |
| 15 | void setBear (phao mang) Đặt ổ đỡ, tính bằng độ. |
| 16 | void setLatitude (vĩ độ gấp đôi) Đặt vĩ độ, tính theo độ. |
| 17 | void setLongitude (kinh độ gấp đôi) Đặt kinh độ, tính theo độ. |
| 18 | void setSpeed (tốc độ thả nổi) Đặt tốc độ, tính bằng mét / giây so với mặt đất. |
| 19 | Chuỗi toString () Trả về một chuỗi chứa một mô tả ngắn gọn, dễ đọc của con người về đối tượng này. |
Nhận vị trí hiện tại
Khóa học lập trình Android Để có được vị trí hiện tại, hãy tạo một máy khách vị trí là đối tượng LocationClient , kết nối nó với Dịch vụ vị trí bằng phương thức connect ()và sau đó gọi phương thức getLastLocation () của nó .
Phương thức này trả về vị trí gần đây nhất dưới dạng đối tượng Vị trí chứa tọa độ vĩ độ và kinh độ và các thông tin khác như được giải thích ở trên. Để có chức năng dựa trên vị trí trong hoạt động của bạn, bạn sẽ phải thực hiện hai giao diện
GooglePlayServiceClient.ConnectionCallbacks
GooglePlayServiceClient.OnConnectionFailedListener
Các giao diện này cung cấp các phương thức gọi lại quan trọng sau mà bạn cần triển khai trong lớp hoạt động của mình
GooglePlayServiceClient.ConnectionCallbacks
GooglePlayServiceClient.OnConnectionFailedListener
Các giao diện này cung cấp các phương thức gọi lại quan trọng sau mà bạn cần triển khai trong lớp hoạt động của mình
| Sr.Không. | Phương thức gọi lại & Mô tả |
|---|---|
| 1 | khoảng trống trừu tượng onConnected (Bundle ConnectionHint) Phương thức gọi lại này được gọi khi dịch vụ vị trí được kết nối với máy khách vị trí thành công. Bạn sẽ sử dụng phương thức connect () để kết nối với máy khách định vị. |
| 2 | khoảng trống trừu tượng onDisconnected () Phương thức gọi lại này được gọi khi máy khách bị ngắt kết nối. Bạn sẽ sử dụng phương thức disconnect () để ngắt kết nối khỏi máy khách vị trí. |
| 3 | khoảng trống trừu tượng onConnectionFails (kết quả ConnectionResult) Phương thức gọi lại này được gọi khi có lỗi kết nối máy khách với dịch vụ. |
Khóa học lập trình Android nên ngắt kết nối máy khách theo phương thức onStop () để khi ứng dụng của bạn không hiển thị, Dịch vụ vị trí không duy trì vị trí hiện tại. Điều này giúp tiết kiệm pin lên đến một mức độ lớn.
Nếu bạn sẵn sàng cập nhật vị trí, thì ngoài các giao diện được đề cập ở trên, bạn cũng sẽ cần phải thực hiện giao diện LocationListener .
Nhận vị trí cập nhật
Nếu bạn sẵn sàng cập nhật vị trí, thì ngoài các giao diện được đề cập ở trên, bạn cũng sẽ cần phải thực hiện giao diện LocationListener .
Giao diện này cung cấp phương thức gọi lại sau mà bạn cần triển khai trong lớp hoạt động của mình
| Sr.Không. | Phương pháp gọi lại & Mô tả |
|---|---|
| 1 | khoảng trống trừu tượng trênLocationChanged (Vị trí địa điểm) Phương thức gọi lại này được sử dụng để nhận thông báo từ LocationClient khi vị trí đã thay đổi. |
Vị trí chất lượng dịch vụ
Các LocationRequest đối tượng được sử dụng để yêu cầu chất lượng dịch vụ (QoS) để cập nhật vị trí từ LocationClient . Có các phương thức setter hữu ích mà bạn có thể sử dụng để xử lý QoS.Có các phương thức getter tương đương có sẵn mà bạn có thể kiểm tra trong tài liệu chính thức của Android.
| Sr.Không. | Phương pháp & Mô tả |
|---|---|
| 1 | setExpirstDuration (millis dài) Đặt thời lượng của yêu cầu này, tính bằng mili giây. |
| 2 | setExpirstTime (mili dài) Đặt thời gian hết hạn yêu cầu, tính bằng mili giây kể từ khi khởi động. |
| 3 | setFastestInterval (millis dài) Hoàn toàn đặt khoảng thời gian nhanh nhất để cập nhật vị trí, tính bằng mili giây. |
| 4 | setInterval (millis dài) Đặt khoảng thời gian mong muốn cho các cập nhật vị trí hoạt động, tính bằng mili giây. |
| 5 | setNumUpdates (int numUpdates) Đặt số lượng cập nhật vị trí. |
| 6 | setP Warriority (ưu tiên int) Đặt mức độ ưu tiên của yêu cầu. |
Bạn cũng có thể sử dụng khoảng thời gian lớn hơn và / hoặc các ưu tiên khác như PRIORITY_LOW_POWER để yêu cầu độ chính xác ở cấp độ "thành phố" hoặc PRIORITY_BALANCED_POWER_ACCURACY cho độ chính xác của mức "chặn".
Khóa học lập trình Android Các hoạt động nên cân nhắc mạnh mẽ xóa tất cả yêu cầu vị trí khi vào nền (ví dụ: tại onPause ()) hoặc ít nhất là hoán đổi yêu cầu sang một khoảng lớn hơn và chất lượng thấp hơn để tiết kiệm điện năng tiêu thụ.
Khi bạn có đối tượng Location , bạn có thể sử dụng phương thức Geocoder.getFromLocation () để lấy địa chỉ cho một vĩ độ và kinh độ nhất định.
Khóa học lập trình Android Các hoạt động nên cân nhắc mạnh mẽ xóa tất cả yêu cầu vị trí khi vào nền (ví dụ: tại onPause ()) hoặc ít nhất là hoán đổi yêu cầu sang một khoảng lớn hơn và chất lượng thấp hơn để tiết kiệm điện năng tiêu thụ.
Hiển thị địa chỉ vị trí
Khi bạn có đối tượng Location , bạn có thể sử dụng phương thức Geocoder.getFromLocation () để lấy địa chỉ cho một vĩ độ và kinh độ nhất định.
Phương thức này là đồng bộ và có thể mất nhiều thời gian để thực hiện công việc của nó, vì vậy bạn nên gọi phương thức từ phương thức doInBackground () của lớp AsyncTask .
Các AsyncTask phải được subclassed được sử dụng và các lớp con sẽ ghi đè doInBackground (Params ...) phương pháp để thực hiện một nhiệm vụ trong nền và onPostExecute (Result) phương pháp được gọi trên thread UI sau khi kết thúc nền tính toán và vào thời điểm đó đến hiển thị kết quả.
Các AsyncTask phải được subclassed được sử dụng và các lớp con sẽ ghi đè doInBackground (Params ...) phương pháp để thực hiện một nhiệm vụ trong nền và onPostExecute (Result) phương pháp được gọi trên thread UI sau khi kết thúc nền tính toán và vào thời điểm đó đến hiển thị kết quả.
Có một phương thức quan trọng hơn có sẵn trong AyncTask, đó là thực thi (Params ... params) , phương thức này thực thi tác vụ với các tham số đã chỉ định.
Thí dụ
Ví dụ sau cho bạn thấy thực tế cách sử dụng Dịch vụ vị trí trong ứng dụng của bạn để có được vị trí hiện tại và địa chỉ tương đương của nó, v.v.
Để thử nghiệm với ví dụ này, bạn sẽ cần thiết bị di động thực tế được trang bị HĐH Khóa học lập trình Android mới nhất, nếu không, bạn sẽ phải vật lộn với trình giả lập có thể không hoạt động.
Thí dụ
Ví dụ sau cho bạn thấy thực tế cách sử dụng Dịch vụ vị trí trong ứng dụng của bạn để có được vị trí hiện tại và địa chỉ tương đương của nó, v.v.
Để thử nghiệm với ví dụ này, bạn sẽ cần thiết bị di động thực tế được trang bị HĐH Khóa học lập trình Android mới nhất, nếu không, bạn sẽ phải vật lộn với trình giả lập có thể không hoạt động.
Tạo ứng dụng Android
| Bậc thang | Sự miêu tả |
|---|---|
| 1 | Bạn sẽ sử dụng IDE studio Android để tạo một ứng dụng Android và đặt tên nó là Tutorialspoint theo góicom.example.tutorialspoint7.myapplication . |
| 2 | thêm tệp src / GPSTracker.java và thêm mã yêu cầu. |
| 3 | Sửa đổi tệp src / MainActivity.java và thêm mã yêu cầu như hiển thị bên dưới để đảm bảo lấy vị trí hiện tại và địa chỉ tương đương của nó. |
| 4 | Sửa đổi bố cục tệp res / layout / Activity_main.xml để thêm tất cả các thành phần GUI bao gồm ba nút và hai chế độ xem văn bản để hiển thị vị trí / địa chỉ. |
| 5 | Sửa đổi res / value / chuỗi.xml để xác định các giá trị không đổi cần thiết |
| 6 | Sửa đổi AndroidManifest.xml như hiển thị bên dưới |
| 7 | Chạy ứng dụng để khởi chạy trình giả lập Android và xác minh kết quả của những thay đổi được thực hiện trong ứng dụng. |
Khóa học lập trình Android Sau đây là nội dung của tệp hoạt động chính được sửa đổi MainActivity.java.
Sau đây là nội dung của tệp hoạt động chính được sửa đổi GPSTracker.java .
Sau đây sẽ là nội dung của tệp res / layout / Activity_main.xml
Để chạy ứng dụng từ Khóa học lập trình Android Studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.
Trước khi bắt đầu ứng dụng của bạn, trình cài đặt studio Android sẽ hiển thị cửa sổ sau để chọn tùy chọn nơi bạn muốn chạy ứng dụng Android của mình.
Bây giờ để xem vị trí, chọn Nút Vị trí sẽ hiển thị thông tin vị trí như sau
<?xml version = "1.0" encoding = "utf-8"?> <LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_width = "fill_parent" android:layout_height = "fill_parent" android:orientation = "vertical" > <Button android:id = "@+id/button" android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:text = "getlocation"/> </LinearLayout>Sau đây sẽ là nội dung của res / value / chuỗi.xml để xác định hai hằng số mới
<?xml version = "1.0" encoding = "utf-8"?> <resources> <string name = "app_name">Tutorialspoint</string> </resources>Sau đây là nội dung mặc định của AndroidManifest.xml
<?xml version = "1.0" encoding = "utf-8"?> <manifest xmlns:android = "http://schemas.android.com/apk/res/android" package = "com.example.tutorialspoint7.myapplication"> <uses-permission android:name = "android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name = "android.permission.INTERNET" /> <application android:allowBackup = "true" android:icon = "@mipmap/ic_launcher" android:label = "@string/app_name" android:supportsRtl = "true" android:theme = "@style/AppTheme"> <activity android:name = ".MainActivity"> <intent-filter> <action android:name = "android.intent.action.MAIN" /> <category android:name = "android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>Hãy thử chạy ứng dụng Tutorialspoint của bạn . Tôi cho rằng, bạn đã kết nối thiết bị Android Mobile thực tế của mình với máy tính.
Để chạy ứng dụng từ Khóa học lập trình Android Studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ.
Trước khi bắt đầu ứng dụng của bạn, trình cài đặt studio Android sẽ hiển thị cửa sổ sau để chọn tùy chọn nơi bạn muốn chạy ứng dụng Android của mình.
Bây giờ để xem vị trí, chọn Nút Vị trí sẽ hiển thị thông tin vị trí như sau

Không có nhận xét nào:
Đăng nhận xét