Android Google Maps: Show your current location

Xin chào!
Đây là bài số 2 trong chuỗi bài về Google Maps. Chúng ta sẽ cần nội dung và project trong bài cũ, nên trường hợp bạn chưa đọc bài trước thì xin mời ghé qua link sau nhé:
https://labs.septeni-technology.jp/android-2/android-google-maps/
Trong bài số 1 đó tôi đã hướng dẫn bạn thiết lập và hiển thị Google Maps trong ứng dụng Android của mình rồi. Khi chạy ứng dụng lên bạn sẽ thấy bản đồ hiển thị tại châu Úc và có 1 điểm pin ở Sydney. Ồ, tôi đang ở Việt Nam (ở Hà Nội chẳng hạn), tôi cần biết thông tin ở khu vực quanh vị trí hiện tại của tôi, nhưng bản đồ bây giờ lại hiển thị ở tận nơi phương xa như vậy thì không ổn. Tôi và bạn sẽ cùng nhau thiết lập để Google Maps hiển thị ví trí hiện tại nhé. Hãy mở project lên nào.

Add file LocationUtils.java dưới đây vào project.

LocationUtils.java sẽ giúp bạn kiểm tra thiết bị đã bật dịch vụ định vị hay chưa, yêu cầu cập nhật vị trí hiện tại của thiết bị và huỷ bỏ yêu cầu đó khi không cần thiết.
Tiếp theo, vì ứng dụng sẽ sử dụng dịch vụ Location trên thiết bị nên bạn cần request quyền truy cập Location từ người dùng. Hãy khai báo permission trong AndroidManifest.xml. Thông thường khi tạo project như trong bài trước thì việc khai báo này đã được tự động thêm vào rồi, tuy nhiên để chắc chắn bạn nên kiểm tra lại một lần nữa.

Với những thiết bị chạy Android 6 trở lên thì việc khai báo permission như trên là chưa đủ, chúng ta cần request permission khi chạy ứng dụng. Bây giờ chúng ta sẽ xử lý việc này và các phần còn lại để hiển thị vị trí hiện tại trên bản đồ trong file MapsActivity.java. Các bước implement như sau:
– Khi khởi chạy ứng dụng, trong hàm onCreate tôi kiểm tra xem nếu người dùng chưa cấp location permission sẽ thực hiện request. Sau đó tôi sẽ xử lý kết quả của việc request này trong hàm onRequestPermissionsResult. Nếu kết quả vẫn chưa được cấp permission, ứng dụng sẽ không thể lấy được vị trí hiện tại, và sẽ thông báo cho người dùng biết điều này.
– Khi ứng dụng đã được cấp location permission, sử dụng LocationUtils ở trên, tôi kiểm tra nếu thiết bị chưa bật dịch vụ location sẽ thực hiện request người dùng bật nó lên. Việc xử lý kết quả trả về trong hàm onActivityResult. Nếu kết quả dịch vụ vẫn chưa được kích hoạt tôi cũng sẽ thông báo cho người dùng.
– Khi ứng dụng đã được cấp location permission, đồng thời thiết bị đã bật dịch vụ định vị. Tôi tiến hành xác định vị trí hiện tại thông qua LocationUtils và hiển thị trên Google Maps.
File MapsActivity.java được update như dưới đây.

Cuối cùng bạn chỉ cần chạy ứng dụng lên và xem kết quả nhé.

Tôi cũng xin dừng bài viết lần này ở đây. Bài tiếp theo, cũng trong chuỗi bài về Google Maps, tôi sẽ hướng dẫn bạn tìm 1 địa điểm bạn muốn đến và chỉ đường đến đó ngay trong ứng dụng của bạn.
Cùng chờ đón nhé!

Tags:,

Add a Comment

Your email address will not be published.