Ché độ xem phố 360° Street View trong Google Maps Tính năng tiếp theo của Google Maps là øì: Sử dụng tính năng Chế độ xem phố Street View giúp người dùng khám phá các địa danh trên Googl
Trang 1TRUONG DAI HOC BA RIA - VUNG TAU
BARIA VUNGTAU UNIVERSITY CAP SAINT JACQUES
LAP TRINH UNG DUNG DI DONG, GAME 2
DE TAI
GOOGLE MAP
Giảng viên hướng dẫn: ThS Nguyễn Thị Minh Nương
Trinh d6 dao tao: Dai hoc Ngành đảo tạo: Công nghệ thông tin Niên khóa: 2023-2024
Trang 2Ba Ria - Viing Tau, thang 11, nam 2023
Trang 3LOI CAM ON Nhóm em xin được gửi lời cảm ơn đến Th§ Nguyễn Thị Minh Nương Cảm ơn
cô đã tận tỉnh giúp đỡ, chỉ dạy chúng em trong thời gian qua Nhóm em rất vui vì được đồng hành củng cô trong học phần này, cảm ơn cô đã mang lại cho chúng em nhiều kiến thức và trải nghiệm thú vị
Trong quá trình làm bài chắc chắn khó tránh khỏi những thiểu sót Do đó, nhóm
em rất mong nhận được những lời góp ý của cô đê nhóm ngày càng hoàn thiện hơn.
Trang 4MUC LUC CHƯƠNG 1: GIỚI THIEU VỀ ĐỀ TÀI -¿::-52222+2+22222EE+ttEEtrrkrrtrrrrrrrrrre 2
IL Lý do chọn đề tài 5à 2T 1T T2 12121 1 HH He ưu 2
II 4,r.á.¡1- ›:ởiiiaa 2
IIL Một vài nét về lịch sử ra đời của Google Maps c2 2n 2
IV Các tính năng của google mmap Đà c0 0 2221212111211 1121211 211118111811 H nh key 3
1 Tìm kiếm địa điểm, vị trí trên bản đỒ - 52 St 31121 51555151511111115E 1x exxe2 3
2 Xem thông tin đường đi và chỉ đẫn đi chuyền -.- 5c cccEetserrxrreg 3 3 Theo dõi tình hình giao thông, phương tiện xe cộ, bản đồ vệ tỉnh và địa hình
4
4 Chế độ xem phố 360° (Street View) trong Google Maps s¿ 5
5 Chia sé vi tri cua ban theo thời gian thực (Gửi định vỊ) -‹c.- 5
6 Thêm hoặc thay đôi địa chỉ (nhà riêng, cơ quan, cửa hàng) trên Google Maps 5
7 Lưu và đặt tên cho địa điểm ưa thích trên bản đ 22 SE 2E re 5
8 Str dung Google Maps ngoại tuyến khi không có mạng internet 5
9 Ra lệnh bằng giọng nói trên Google Maps 2- Sàn SE Hee 5
10 Xem được những địa điểm bạn da di qua với dạng timeline 6
11 Tìm địa điểm (trạm xăng, cây ATM, khách sạn, sân bay ) ở gần chỗ bạn 6
12 Tìm các nhà hàng có dịch vụ mua mang đi hoặc giao hàng 6 V._ Những điều cần lưu ý khi xử dụng google map 55s scs SE Ererretsre 6
1 Giảm khả năng định vị, hạn chế về mặt điều hướng và tạo tính lệ thuộc 6 2 Dưới góc nhìn khoa học - 2 222 122111211121 115 1151151115115 11H ru 7
3 Nguy hiểm khi tham gia giao thông - 5 s St x1 tru 7
Trang 54 Nguyén nhan khién pin tuột khong phanh c.cccceccccceccsccseeeeeseeeeeeeseeseees 8
5 Google Maps khong phai lic nao cting dung cece ee cee eens 8
CHƯƠNG 2: TONG QUAN LY THUYET o cscccessesssseesssssseeseessnteseeecssnneeennecsnnesees 9
I Yéu cau quyén truy cap thong tin Vi thi ceccsscscseeseesesseesesesteecscseeseees 9
1 Loai quyén truy cap thong tin Vi tli ceccsesesseseceessvesestsseeecseeveseevees 9
2 Yéu cau quyén truy cap théng tin vi tri trong thời gian chạy 11
CHUONG 3: PHAN TICH VA TRIEN KHAI DEMO 0 secsssssssssssssstesseesssteseeensees 17
I Demol: Nhung google map vao Android ccc ccc cccccccecee eects seeceeteeecnsaeees 17
1 Hién thi map va danh DAU VE thie ccccccccccccccccccesececsvevevsvsvevevscevsvscsvavsesevseeeceess 20
2 Thay đôi màu sắc điểm đánh đấu 55 251 SE E21 1E tr Hee 23
3 Lay va hién thi vi trí hiện tại trên google map s 5c set 24
II Demo2: Demo tạo searchview đề tìm kiếm 22 ST SE E HT re He ren 28
II Demo3: Demo tìm đường đi thông qua ứng dụng google map có sẵn 31
IV Demo4: Demo tìm đường đi bằng google map do mình nhúng vào mandroid 34
CHƯƠNG 4: KÉT LUẬN 2-222222222222221222211222111221127112211121111211 21 cee 41
Trang 6LOI MO DAU
Ngày nay nhu cầu về đi lại nhiều hơn bao giờ hết Việc sở hữu một vài ứng dụng chi
đường là điêu không thê thiếu trong thế giới hiện đại, đặc biệt là những ai sở hữu những thiết bị thông minh
Một trong những tiện ích không thẻ thiếu trên điện thoại thông minh là ứng dụng bản đỗ
chỉ đường Nó giúp bạn xem được vị trí của mình và của những địa điểm mà bạn muốn đến, cũng như hướng dẫn bạn cách di chuyển một cách nhanh chóng và an toàn Có nhiều ứng dụng chỉ đường đã ra đời như: VIETMAP LIVE, HERE WeGo , Sygic GPS Navigation & Offline Maps, OsmAnd, Genius Maps Tuy nhién, khéng phai img dung bản đồ nào cũng có chất lượng và tính năng tốt
Google Maps là một trong những ứng dụng chỉ đường tốt nhất hiện nay Nó đã và đang được sử dụng trên nhiều quốc gia lớn, trong đó có Việt Nam Chỉ cần với chiếc điện thoại
da cai dat ing dung Google Maps và sử dịch vụ định vị, nó sẽ chỉ cho bạn đến nơi bạn
muốn một cách nhanh nhất Google Maps không chỉ được sử dụng bởi những người khách du lịch mà còn được sử dụng rộng rãi trong đời sống, nhất là những người lái xe Đây là một ứng dụng hoàn toàn miễn phí, nhưng chất lượng thì không có gì đáng bàn cãi.
Trang 7CHUONG 1: GIO THIEU VE DE TAI
I Lý do chọn đề tài
Trong bối cảnh công nghệ ngày càng phát triên đặc biệt là đang ở thời kỳ công nghệ 4.0 hiện nay Càng ngày Google map càng trở nên thịnh hành và được mọi người đều sử
dụng Đang dần trở thành một tiện ích không thể tách rời của cuộc sống hiện nay
Thông qua ứng dụng người dùng sẽ biết được địa chỉ để đễ dàng tìm kiếm, tra cứu đường
đi, đo khoảng cách giữa các địa điểm Nhờ những công nghệ hàng đầu được tích hợp
bên trong ứng dụng đem lại sự chính xác cao
Do đó, nhóm em muôn tìm hiều sâu hơn về đề tài này và bắt tay vào làm các demo trong Android Studio đề nghiên cứu về cách thức Google Maps hoạt động
II Khai niém
Google Maps là một một dịch vụ bản đ ồsố được phát hành bởi ông lớn Google, nhằm thay thế các bản đô giấy thông thưởng trong bối cảnh ni công nghệ và internet ngày càng phát triển mạnh mẽ
IH Mặt vài nét về lịch sử ra đời của Google Maps
Google Maps chính thức đi vào hoạt động từ năm 2005 nghĩa là cách đây L7 năm Nó giải quyết được vấn đề “mù đường” đối với người dùng và thay thế hoàn toàn bản đồ giấy trước kia Nhờ có tính năng định vị GPS, Google Maps còn giúp cho người dùng có thể định vị vị trí chính xác theo thời gian thực Ngoài ra, Google Maps cũng có thê được gọi
là cái nôi khai sinh ra các loại bản đồ khác nhau ngày nay, giúp ích rất nhiều trong vận tải
thương mại,
Google map được khởi đầu như một chương trình desktop viết bằng C ++ Tại Where 2 Technologies Dén tháng 10 năm 2004 công ty được Google mua lại và chuyển đổi thành
Trang 8một ứng dụng web khi đã mua được một công ty trực quan hóa đữ liệu không gian chuyên
về địa lý và một công ty phân tích được lưu lượng truy cập theo thời gian thực
Đây là lúc mà Google map được chính thức được ra đời, thời gian cụ thê vào tháng 2 năm
2005 Ứng dụng cung cấp một API cho phép nhúng bản đồ trên các trang web từ bên thứ
3 Đồng thời cung cấp công cụ định vị cho các doanh nghiệp, tô chức khác nhau ở mọi nơi trên thê giới
Google map có những chế độ xem vệ tinh hay còn gọi là xem “từ trên xuống” và xem toàn cảnh Hầu như các hình ảnh có độ phân giải cao chụp ở các thành phô không chụp từ máy bay mà được chụp gần như bằng vệ tinh Các ảnh đó đều được chụp trong khoảng ba
năm gan nhất, luôn được cập nhật liên tục
IV Cac tinh nang cua google map
Ngày nay, Google Maps được ứng dụng vô cùng rộng rãi và đang dần trở thành tiện ích phố biến không thẻ thiếu trong cuộc sông của chúng ta Thông qua Google Maps, người dùng có thê đễ dàng tìm kiếm địa chỉ, tra cứu đường đi, đo khoảng cách các địa điểm, hay
thực hiện các tùy chỉnh đễ dàng đề ghi nhớ các địa điểm yêu thích, định vị vị trí,
1 Tìm kiếm địa điểm, vị trí trên bản đồ
Bạn có thê tìm thấy mọi địa điểm trên Google Maps bằng thao tác nhập từ khóa tên địa chỉ, tên đường, khu vực muốn tìm kiếm Hãy đăng nhập vào Google Maps trước khi tìm
kiếm đề có thể nhanh chóng nhìn thấy địa chỉ mà bạn đã tìm kiếm tại lịch sử trước đó
2 Xem thông tin đường đi và chỉ dẫn di chuyển
Đây là một trong những tính năng chính giúp bạn hiểu Google Maps là gì Thông qua tính năng này, bạn có thê tìm kiếm thông tin chỉ đường lái xe, các phương tiện di chuyên khả dụng cho tuyến đường, tuyến đường tốt nhất và các tuyến đường phụ đến địa điểm đích trên bản đồ Google Maps
Trang 93 Theo dõi tình hình giao thông, phương tiện xe cộ, bản đồ vệ tỉnh và địa hình
¢ Lira chon ché độ bản đồ bạn muốn xem:
- Bản đồ (Mặc định): Chế độ xem bản đồ Google Maps bình thường
- Vệ tinh: Chế độ xem Google Maps khi nhìn từ trên cao, hiển thị các vật và các
tòa nhà riêng lẻ chỉ tiết
- Địa hình: Chế độ xem này giúp hiển thị các vị tri nui, hồ và các đặc điểm phong
cảnh khác chỉ tiết hơn
« - Cách xem tình trạng giao thông trên tuyến đường bạn sẽ di chuyển:
Thao tác lựa chọn mục “Giao thông”: Với tính năng này, bạn có thể nhận biết mức
độ đông đúc trên đường ởi, nhận biết đoạn đường nào bị hạn chế, bị tắc nghẽn, đoạn
đường nào thông thoáng đề có thể lựa chọn hướng di chuyên phù hợp
Sau khi lựa chọn, trên bản đồ sẽ hiển thị các đoạn đường được đánh dấu bằng các
dải màu sắc khác nhau Dưới đây là chú giải chỉ tiết:
- Màu xanh lá cây: Không có trở ngại giao thông
- Màu cam: Lượng giao thông trung bình
- Màu đỏ: Trở ngại giao thông Màu đỏ càng đậm, tốc độ giao thông trên đường
càng chậm
- Đường màu xám hoặc xanh dương: Cho biết tuyến đường của bạn.
Trang 104 Ché độ xem phố 360° (Street View) trong Google Maps
Tính năng tiếp theo của Google Maps là øì: Sử dụng tính năng Chế độ xem phố (Street View) giúp người dùng khám phá các địa danh trên Google Maps với cảm nhận trải nghiệm thực tế ảo rất chân thật, giống như bạn đang thực sự có mặt tại vị trí đó Tuy
nhiên, các hình ảnh 360° trong chế độ xem phố thực tế được ghi lại tại một thời điểm bat
kỳ trong quá khử Không phải tat cả trong số chúng đều được cập nhật các hình ảnh mới nhat
5 Chia sẻ vị trí của bạn theo thời gian thực (Gửi định vi)
Google Maps cho phép người dùng chia sẻ vị trí ở thời điểm hiện tại của họ tới bạn bè, người thân một cách đễ dàng chỉ bằng một vài thao tác cơ bản
6 Thêm hoặc thay đổi địa chỉ (nhà riêng, cơ quan, cửa hàng) trên Google Maps
Google Maps cho phép người dùng lưu lại các địa điểm cô định, giúp tiết kiệm thời gian khi sử dụng bản đồ đề tra cứu tuyến đường tới các vị trí được sử dụng thường xuyên như nhà riêng, cơ quan
7 Lưu và đặt tên cho địa điểm ưa thích trên bản đồ
Với việc hiểu rõ về các tính năng, tiện ích Google Maps là gì, người dùng có thê đễ dàng lưu địa điểm mình yêu thích trực tiếp từ Google Maps
8 Sử dụng Google Maps ngoại tuyến khi không có mạng internet Một trong những tính năng đặc biệt của Google Maps vô cùng được ưa thích, đó chính là tính năng sử dụng bản đồ ngoại tuyên khi không có kết nỗi mạng
9, Ra lệnh bằng giọng nói trên Google Maps
Nhằm mang đến những trải nghiệm tốt nhất dành cho người dùng khi sử dụng bản đỗ
Google Maps trong trường hợp đang tham gia giao thông hoặc không tiện sử dụng tay để
Trang 11gõ tìm kiếm địa điểm muốn đến, Google Maps đã phát triển tiện ích ra lệnh bằng giọng nói vô cùng tiện dụng:
10 Xem được những địa điểm ban da di qua voi dang timeline
Dòng thời gian (Timeline) - hỗ trợ người dùng có thể xem lại các địa điểm mình đã ghé
qua Về bản chất, mỗi khi người dùng tìm kiếm địa điểm hoặc di chuyên theo tuyến đường tra cứu trên Maps, Google sẽ biết tất cả những nơi bạn đi qua và tính năng
Timeline sẽ giúp bạn xem lại những địa điểm đó
11 Tìm địa điểm (trạm xăng, cây ATM, khách sạn, sân bay, ) ở gần chỗ bạn
12 Tìm các nhà hàng có dịch vụ mua mang đi hoặc giao hàng
Khám phá các chức năng được yêu thích nhất của Google Maps là gì, nhất định không thể
bỏ qua tính năng tìm kiếm các nhà hàng cung cấp dịch vụ mang hàng đi hoặc giao hàng
tận nơi ở khu vực lân cận bạn
V Những điều cần lưu ý khi xử dụng øoogle map
1 Giảm khả năng định vị, hạn chế về mặt điều hướng và tạo tính lệ thuộc
Từ khi Google Maps trở nên phô biến, nhất là ở những thành phố lớn với mật độ dân số và đường xá chăng chịt thì Google Maps trở thành một người bạn khi ra đường Khi đi từ điểm A đến điểm B mà chưa biết rõ lộ trình, chúng ta thường sẽ bật Google Maps liên tục và tính năng GPS sẽ định vị và giúp chúng ta đi đến nơi chính xác Tuy nhiên nếu duy trì thói quen này liên tục sẽ khiến chúng ta bị lệ thuộc vào Google Maps hoàn toản
Việc lệ thuộc hoản toàn vào những thứ chỉ đường có sẵn sẽ khiến chúng ta không vận động não bộ, không suy nghĩ và ghi nhớ những con đường, khúc cua, ngã rẽ Điều này dần vô thức sẽ biến chúng ta trở thành những “zombie” đi theo sự sắp xếp của máy
Trang 12gian thực cũng làm giảm khả năng định vị vị trí, khu vực nơi chúng ta đang đứng
Nếu như vô tình một ngày bạn bước ra đường và không mang theo điện thoại hoặc
vì một lý do gì đó mà Google Maps của bạn không hoạt động, bạn sẽ thấy được sự bất lực của chính mình với việc quá lệ thuộc vào ứng dụng này Chúng ta cần thay đôi thói quen học thuộc và ghi nhớ đường đề giúp não bộ luôn hoạt động và tư duy Nếu như di từ điểm
A đến điểm B mà không biết lộ trình, bạn vẫn có thê coi trước Google Maps làm tham khảo và ghi nhớ những con đường định sẵn đề đến đích
2 Dưới góc nhìn khoa học
Ban đồ theo ghi nhớ được dé cập bên trên là một trong hai chiến lược mà con
người người thường sử dụng đề điều hướng Đó là “phương pháp ghi nhớ không gian”,
trong đó bạn cần tìm hiểu vị trí của mọi thứ xunh quanh để hình thành bản đồ môi trường
trong đầu Phương pháp thứ hai là “chiến lược kích thích phản ứng”, ghi nhớ một chuỗi các sự kiện dẫn đến đích như rẽ trái, lái xe 3km, rẽ phải tại trạm xăng để hoàn thành hành trình
Một nghiên cứu đã được thực hiện với sự tham gia của 50 người trưởng thành
trong độ tuôi từ 19 đến 35 Tất cả họ đều là “những người lái xe thường xuyên”, nghĩa là
họ thường lái xe không dưới 4 ngày một tuần và không hay sử dụng các tính năng hỗ trợ định vị trước đó Những người tham gia được đưa ra một số bài kiêm tra yêu cầu họ ghi
nhớ các đồ vật ở cuối hành trình
Không có gì đáng ngạc nhiên, những người sử dụng “chiến lược kích thích phản ứng” đã mắc nhiều sai lầm hơn khi cần có các mốc đề ghi nhớ đường đi Vì vậy, trong các thử nghiệm nơi các mốc bị ân, những người sử dụng “phương pháp bộ nhớ không gian”
đã cho khả năng ghi nhớ tốt hơn
Ba năm sau, l3 người tham gia với "phương pháp bộ nhớ không gian” đã được
kiêm tra lại Những người phụ thuộc nhiều vào GPS kế từ lần thử nghiệm đầu tiên có trí
nhớ không gian suy giảm mạnh hơn Nói cách khác, họ đã trở nên tệ hơn trong việc sử
Trang 13dung cac dia danh lam tham chiéu cho việc điều hướng Khả năng ghi nhớ bằng não bộ đã
bị giảm sút sau thời gắn bó với tính năng định vị
3 Nguy hiểm khi tham gia giao thông
Việc điều khiển phương tiện giao thông bắt buộc chúng ta phải luôn giữ sự tập trung ở mức tối đa đề xử lý tình huống Việc quá chăm chú vào Google Maps cũng sẽ khiến chúng ta mắt tập trung, xử lý tình huống kém linh hoạt và dẫn tới những tai nạn không may Giờ đây, Google Maps có tính năng chỉ đường thông qua giọng nói, chung ta
có thể đeo tai nghe đề nghe dẫn đường nhưng điều đó cũng làm giảm khả năng nhận âm thanh cảnh báo từ những phương tiện xung quanh Ngoài ra việc đeo tai nghe khi tham gia giao thông cũng là trái với quy định pháp luật
Đã có rất nhiều trường hợp bị giật điện thoại và ngã xe ra đường đề lại những tai nạn đáng tiếc Mất mát về tài san và hao tồn về sức khỏe luôn “rình rập” chúng ta mỗi khi
rút điện thoại ra để sử dụng Chính vì vậy mà việc vừa di chuyên, vừa rút điện thoại để xem đường là một quyết định hoàn toàn sai lầm
4 Nguyên nhân khiến pin tuột không phanh
Sử dụng Google Maps đề tra đường đồng nghĩa với việc điện thoại phải hoạt động
liên tục, màn hình sáng liên tục và GŒPS cũng hoạt động liên tục Ngoài ra, khi di chuyển
chúng ta sẽ sử dụng đữ liệu truy cập mạng 4G hoặc 5G và điều này khiến pin điện thoại đi động có thê tuột không phanh và gây nóng máy
Không phải lúc nào chúng ta đi ra đường trong trạng thái pin đầy và nếu không may, Google Maps khiến cho điện thoại của bạn cạn pin thì bạn sẽ gặp phải hoàn cảnh ra đường trong trạng thái mù đường và vô cùng bắt lực
5 Google Maps không phải lúc nào cũng đúng
Đã có rất nhiều trường hợp oái ăm về khả năng dẫn đường của Google Maps và chắc chắn rằng, ai trong số chúng ta cũng đã từng một lần phát cáu vì khả năng chỉ đường
“kém thông minh” của ứng dụng này Rất nhiều trường hợp Google Maps dẫn chúng ta đi qua những con đường không có trong thực tế và đưa chúng ta vào những tình huống xoay
Trang 14sở khó khăn Đơn giản hơn là đôi khi Google Maps đưa chúng ta tới những dia chi không
chính xác vì chậm cập nhật sự thay đổi so với thực tế
Điền hình có thê kê đến như câu truyện bạn đọc có thể đễ dàng lướt qua trên mạng
xã hội đi Đà Lạt nghe chị "Gu-gồ" dẫn đường mà nó lạ lắm Những khu vực có địa hình
hiểm trở, nhiều hẻm hóc nhỏ hoặc liên tục thay đổi địa chất do thời tiết luôn gây khó khăn
cho ứng dụng bản đồ và khiến người dùng nhiều lần phải ngớ người khi đi theo sự chỉ dẫn chưa chính xác.
Trang 15CHUONG 2: TONG QUAN LY THUYET
I Yêu cầu quyền truy cập thông tin vị trí
Để bảo vệ quyền riêng tư của người dùng, các ứng dụng dùng dịch vụ vị trí phải yêu cầu quyên truy cập thông tin vị trí
Khi bạn yêu cầu quyền truy cập thông tin vị trí, hãy làm theo các phương pháp hay nhất giống như với mọi quyền khi bắt đầu chạy khác Một khác biệt quan trọng khi nói đến quyền truy cập thông tin vị trí là hệ thống bao gồm nhiều quyên liên quan đến vị trí Quyền mà bạn yêu cầu và cách bạn yêu cầu quyền đó phụ thuộc vào các yêu cầu về vị trí đối với trường hợp sử dụng của ứng dụng
1 Loại quyền truy cập thông tỉn vị trí
Mỗi quyền có một tô hợp đặc điểm sau:
‹ - Danh mục: Quyên truy cập thông tin vị trí ở chế độ nền trước hoặc quyền truy cập
thông tin vị trí ở chế độ nền
« - Độ chính xác: VỊ trí chính xác hoặc vị trí gan dung
a) Quyền truy cập thông tin vị trí ở chế độ nền trước
Nếu ứng dụng của bạn chứa một tính năng chỉ chia sẻ hoặc nhận thông tin vị trí một lần
hoặc trong một khoảng thời gian xác định, thì tính năng đó sẽ yêu cầu quyền truy cập
thông tin vị trí ở chế độ nên trước Sau đây là một sô ví dụ:
« Trong ứng dụng tìm đường, một tính năng cho phép người dùng xem đường ổi từng chặng
« _ Trong ứng dụng nhắn tin, một tính năng cho phép người đùng chia sẻ vị trí hiện tại của mình với người dùng khác
10
Trang 16b) Quyền truy cập thông tin vị trí ở chế độ nền
Ứng dụng sẽ yêu cầu quyền truy cập thông tin vị trí ở chế độ nền nếu một tính năng trong ứng dụng đó liên tục chia sẻ vị trí với người dùng khác hoặc sử dụng (Geofeneing API)
API Khoanh vùng địa lý Sau đây là một số ví đụ:
Trong ứng dụng chia sẻ vị trí của nhóm gia đình, một tính năng cho phép người
dùng liên tục chĩa sẻ vị trí với thành viên gia đình
Trong ứng dụng IoT, một tính năng cho phép người dùng định cấu hình các thiết bi
trong nhà đề tắt thiết bị khi người dùng rời khỏi nhà và bật lại khi người dùng trở
sẽ chính xác trong phạm vi khoảng 3 kilômét vuông (khoảng 1,2 đặm vuông) Ứng
dụng của bạn có thể nhận được thông tin vị trí ở mức độ chính xác này khi bạn
khai bao quyén ACCESS COARSE LOCATION chứ không phải
quyền ACCESS FINE LOCATION
Chinh xac
Cung cap thông tin vị trí ước tính của thiết bị một cách chính xác nhất có
thê Nếu thông tin vị trí ước tính là
từ LocatlonManagerService hoặc FusedLocationProviđer, thì ước tính này thường nằm trong phạm vi khoảng 50 mét (160 feet) và đôi khi chính xác nhất là trong
II
Trang 17phạm vi vài mét (10 feet) Ứng dụng của bạn có thể nhận được thông tin vị trí ở mức độ chính xác này khi bạn khai báo quyền ACCESS FINE_LOCATION
Nếu người dùng cấp quyền truy cập thông tin vị trí gần đứng, thi ứng dụng của bạn chỉ có
quyền truy cập thông tin vị tri gần đúng, bất kế ứng dụng đó khai báo quyền truy cập
thông tin vi tri nao
Ứng dụng của bạn sẽ vẫn hoạt động khi người dùng chỉ cấp quyền truy cập thông tin vi tri gần đúng Nếu một tính năng trong ứng dụng của bạn tuyệt đối yêu cầu quyền truy cập
thông tin vị trí chính xác thông qua quyền ACCES§S_FINE_LOCATION, thì bạn co thé
yêu cầu người dùng cho phép ứng dụng của bạn truy cập vào vị trí chính xác,
2 Yêu cầu quyền truy cập thông tin vị trí trong thời gian chạy Khi một tính năng trong ứng dụng của bạn cần có quyền truy cập thông tin vị trí, hãy đợi cho đến khi người dùng tương tác với tính năng đó rồi mới đưa ra yêu cầu cấp quyền Quy trình công việc này tuân theo các phương pháp hay nhất để yêu cầu quyền khi bắt đầu chạy trong ngữ cảnh, như mô tả trong hướng dẫn giải thích cách yêu cầu quyền cho ứng dung
Hinh 1 cho thấy ví dụ về cách thực hiện quy trình này Ứng dụng chứa một tính năng
"chia sé vi trí" yêu cầu quyên truy cập thông tin vị trí ở chế độ nền trước Tuy nhiên, ứng dụng chỉ yêu cầu quyền truy cập thông tin vị trí khi người dùng chọn nút Chia sẻ thông tin vi tri
12
Trang 18a) Người dùng chỉ có thê cấp quyền truy cập thông tin vị trí gần đúng Trên Android 12 (API cấp 31) trở lên, người dùng có thê yêu cầu ứng dụng của bạn chỉ truy xuất thông tin vị trí gần đúng, ngay cả khi ứng dụng đó yêu cầu quyền khi bắt đầu chạy ACCESS FINE LOCATION
Đề xử lý hành vi tiềm ấn này của người dùng, đừng yêu cầu
quyén ACCESS FINE LOCATION Thay vào đó, hãy yêu cầu cả
quyén ACCESS FINE LOCATION va quyén ACCESS COARSE LOCATION trong
một yêu cầu thời gian chạy duy nhất Nếu bạn chỉ cố yêu
cầu ACCESS_FINE LOCATION, hệ thống sẽ bỏ qua yêu cầu này trên một số bản phát
hành của Android 12 Nếu ứng dụng của bạn nhắm đến Android 12 trở lên, hệ thống sẽ ghi lại thông báo lỗi sau trong Logeat:
13
Trang 19ACCESS FINE LOCATION must be requested with
ACCESS COARSE LOCATION
Khi ứng dụng của bạn yêu cầu
cả ACCESS FINE LOCATION và ACCESS_COARSE LOCATION, hộp thoại cấp quyền của hệ thống sẽ bao gồm các tuỳ chọn sau cho người dùng:
‹« - Chính xác: Cho phép ứng dụng của bạn lấy thông tin vị trí chính xác
‹ - Gần đúng: Cho phép ứng dụng của ban chi lay thong tin vi tri gần đúng
Hình 3 minh hoạ hộp thoại chứa một chỉ dẫn hình ảnh cho cả hai tuỳ chọn đề giúp người dùng chọn Sau khi quyết định về độ chính xác của vị trí, người dùng nhân vào một trong
3 nút đề chọn khoảng thời gian cấp quyên
Trên Android 12 trở lên, người đùng có thể chuyên đến phần cài đặt hệ thống đề đặt độ chính xác vị trí ưu tiên cho các ứng dụng, bất kê phiên bản SDK mục tiêu của ứng dụng
đó là gì Điều này xảy ra ngay cả khi ứng dụng của bạn được cài đặt trên một thiết bị chạy Android I1 trở xuống, sau đó người dùng nâng cấp thiết bị lên Android 12 trở lên
14
Trang 20ứng dụng của bạn nhằm đến Android 12 và chỉ yêu
cau ACCESS_COARSE_LOCATION
+* Lựa chọn của người dùng sẽ ảnh hưởng đền các quyền được câp
Bảng sau đây cho thấy các quyền mà hệ thông cấp cho ứng dụng của bạn, dựa trên các tuỳ chọn mà người đùng chọn trong hộp thoại cấp quyền khi bắt đầu chạy:
15
Trang 21+* Yêu câu nâng cấp lên vị trí chính xác
Bạn có thể yêu cầu người dùng nâng cấp quyền truy cập của ứng dụng từ vị trí gần đúng lên vị trí chính xác Tuy nhiên, trước khi bạn yêu cầu người dùng nâng cấp quyên truy cập của ứng dụng vào vị trí chính xác, hãy cân nhắc xem trường hợp sử dụng của ứng dụng có tuyệt đối yêu cầu mức độ chính xác này không Nếu ứng dụng của bạn cần ghép nối thiết
bị với các thiết bị ở gần qua Bluetooth hoặc Wi-Fi, hãy cân nhắc dùng tính năng ghép nối thiết bị đồng hành hoặc quyên truy cập Bluetooth, thay vì yêu cầu
quyén ACCESS FINE LOCATION
Đề yêu cầu người dùng nâng cấp quyền truy cập thông tin vị trí của ứng dụng từ gần đúng lên chính xác, hãy làm như sau:
© Giải thích lý do ứng dụng của bạn cần quyền này, nêu cần
e© Yêu cầu lại cả
quyền ACCESS FINE LOCATION va ACCESS COARSE LOCATION Vi người dùng đã cho phép hệ thống cấp quyền truy cập thông tin vị trí gần đúng cho ứng dụng của bạn nên lần này, hộp thoại của hệ thống sẽ hiển thị khác, như minh hoạ trong hình 4 và hình 5:
16
Trang 22CHUONG 3: PHAN TICH VA TRIEN KHAI DEMO
I Demol: Nhung google map vao Android
Code trong MainAcitvity java
import android location.Geocoder;
import android location.Location;
public class MainActivity extends AppCompatActivity implements
OnMapReadyCallback {// Gọi lại lệnh sẵn sàng trên bản đ ôchỗ này sẽ báo lỗi
nên bạn ấn ALt+ enter vào để khai báo phía trên
private final int FINE_PEMISSION_CODE = I; //khai baáo I biến mã cấp phép
Location currentLocation; //khai báo L đối tượng vị trí hiện tại thuộc lớp
Location
EusedLocationProviderClient fusedLocatonProviderClient; /Khai báo I đối
tượng thuộc lớp cung cấp vị trí hợp nhất
private GoogleMap myMap: //tạo một đối tượng myMap thuộc lớp GoogleMap
Trang 23fusedLocationProviderClient =
LocationServices.getFusedLocationProviderClient(this);
(tạo [ phương thức mới getLastLocation, phương thức này ta dùng để xử
lý code lấy vị trí hiện tại
getLastLocation();
lisp
I
private void getLastLocation() {
//Ðoan t sau dùng để kiểm tra quy Ân truy cập vị trí xem nó có được
cấp phép hay không
if (ActivityCompat.checkSelfPermission(this,
android Manifest.permission ACCESS_FINE_LOCATION) !=
PackageManager PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this,
Task<Location> task = fusedLocationProviderClient.getLastLocation();
/ithêm trình xử lý thành công và kiểm tra vị trí, nếu vị trí ở đây
khác null thì ta gán vị trí này cho vị trí hiện tại
(Phương pháp vì nếu muốn tải bản đ`ôcủa mình trong oncreate thì bản đồ
Google Maps sẽ mất vài mili giây để tải,
/¡ vì vậy nếu tải bản đ`ồtrong ph3Ần phía dưới sẽ tải bản đ `ôkhi bản đ`ôđã
được sẵn sàng
@Override
public void onMapReady(@NonNull GoogleMap googleMap) {
myMap = googleMap; // khởi tạo my map bằng biến googleMap ở trên
/ithêm một số vĩ độ và kinh độ của địa điểm mình muốn bằng cách thêm
liên kết muộn
//LatLng sydney = new LatLng(-34, 151);
LatLng sydney = new LatLng(currentLocation getLatitude(),
currentLocation.getLongitude());
19
Trang 24/ImyMap.addMarker(new
MarkerOptions().position(sydney).title("Sydney"));
/Đi chuyển camera, cập nhật camera ở vĩ độ mới là sydney
myMap.moveCamera(CameraUpdateFactory.newLatLng(sydney));
//Thay đổi màu sắc của điểm đánh dấu
//MarkerOptions options = new
MarkerOptions().posidon(sydney).tile("Sydney"); // khởi tạo 1 đối tượng tùy
chọn thuộc lớp MakerOption, đặt vị trí và tiêu đ`êcho nó
MarkerOptions options = new MarkerOptions().position(sydney).title("My
Location");
options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory HUE
_ROSE));// cài đặt lại màu sắc cho icon của đối tượng trên
myMap.addMarker(options); // áp đối tượng tùy chọn đó cho điểm đánh
dấu, và thêm điểm đánh dấu vào myMap
//phuwong thire sau xu ly két qua tra v éctia yéu c Ai cap quy &, kiém tra ma
yéu c 41 c6 = voi FINE_PEMISSION_CODE hay khéng
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[]
permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions,
grantResults);
if(requestCode == FINE_PEMISSION_CODE){
if(grantResults.length > 0 && grantResults[0] ==
PackageManager.PERMISSION_GRANTED){//kiém tra n@u duore cap quy & lay vị trí
getLastLocation(); // goi phuong thức lấy vị trí hiện tại
else{
/ngược lại thì hiển thị toast thông báo
Toast.makeText(this,"Location permission is denied, please
allow the permission" /Toast LENGTH_SHORT).show();
}
}
}
20
Trang 251 Hién thi map va danh dau vi tri
Bl: Tao | project mới
B2: V6 browser nhập link
(tim Google Maps Platform => Resources => Documentation => Maps SDK => chon Android => Start fast - day la tai ligu chinh thức)
B3: Thêm khóa API vào ứng dụng
Nhập tìm kiếm trên google: Console Developer => vào mở link “Google Developver Console”
Chọn 3 dấu gạch ngang => APSs & Services =>Credentials => Create Credentials => API key => Copy ma API
B4: Thêm phản phụ thuộc vào google map
Vô lại website ban đầu, kéo xuống Module Gradle File
Copy dong implement
Dan vao build.gradle trong android ché dependencies ƒ }
Click on “Sync Now”
implementation("com google.android.gms:play-services-maps: 18.2.0")
BS: Thêm siêu dir liéu
Kéo xuống phần Add an API key to your app
Copy mục 6 vào AndroidManifest.xml chỗ dưới thẻ </activity>
<meta-data
android:name="com google.android.geo API KEY"
android:value={"${MAPS_API_KEY}" />
B6: V6 copy lai ma API key
V6 res => values => strings.xml
21
Trang 26<string name= “my _map api key” dan ma vao day </string>
B7: V6 lai Android Manifest.xml
Thay thé phan value trong <meta> = “@string/my map api key”
<meta-data
android:name="com google.android.geo API KEY"
android: value=" @string/my_map_api_key" />
=> Chúng ta đang truy cập API key trong phần siêu đữ liệu của mình B8: Design
V6 activity_main.xml
V6 lai web Google Maps Platform
Vao myc XML Layout File, copy phan code <frament ./>
Dán vào activytimain.xml, xóa bỏ những phần không cần thiết “°xmlns , tools: ”
Trang 27V6 lai web Google Maps platform => Chung ta sé thay “public class MapsActivity” nhung chung ta dang trién khai ban đồ Google từ đầu nên cần triển khai lệnh gọi lại san sàng trên bản đồ
“implements OnMapReadyCallBack” sau phần “public class MainActivity extends AppCompatActivity”
No sé bao 16i phan nay nén an ALT + Enter va an “ implement methods” => an OK public class MainActivity extends AppCompatActivity implements
OnMapReadyCallback {
Code trong OnMapReady vì nếu chúng ta muốn tải bản đỗ của mình trong “onCreate” thì
bản đồ sẽ mắt vài mili giây đề tải, vì vậy chúng ta sẽ tải bản đồ khi bản đồ đã sẵn sàng
Xuống dưới tạo phương thức onMapReady
@Override
public void onMapReady(@ NonNull GoogleMap googleMap) {}
Khai báo I đối tượng myMap thuộc Google map phía trên
private GoogleMap myMap; //tạo một đối tượng myMap thuộc lớp GoogleMap
Thực hiện công việc của mình trong phương thức onMiapRecady:
Khởi tạo myMap bằng với biến googleMap trong phương thức
myMap = googleMap; // khởi tạo my map bằng biến googleMap ở trên
Thêm vị độ và kinh độ của địa điểm mình muôn băng cách thêm liên kết muộn
23