• Tidak ada hasil yang ditemukan

Report

N/A
N/A
Protected

Academic year: 2019

Membagikan "Report"

Copied!
33
0
0

Teks penuh

(1)

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Viện Công nghệ Thông tin và Truyền thông

Báo cáo môn

Phát triển ứng dụng trên các thiết bị di động

Đề tài Xây dựng ứng dụng xem dự báo thời tiết

trên hệ điều hành Android

Sinh viên thực hiện: Hoàng Văn Phi MSSV: 20156227 Nguyễn Anh Tuấn MSSV: 20156760

(2)
(3)
(4)

CH

ƯƠ

NG 1. T NG QUAN

ĐỀ

TÀI

1.1. Gi i thi u chung

Ngày nay cùng v i s phát tri n không ng ng c a xã h i thìớ ự ể ừ ủ ộ nhu c u c a con ngầ ủ ười ngày càng t ng, đ c bi t trong đó là các nhuă ặ ệ c u v công ngh đ ph c v cu c s ng hàng ngày c a m i cá nhânầ ề ệ ể ụ ụ ộ ố ủ ỗ khi mà công ngh ngày càng phát tri n m nh m nh hi n nay.ệ ể ạ ẽ ư ệ N m b t đắ ắ ược nhu c u đó các công ty công ngh đã không ng ngầ ệ ừ đ i m i và t o ra nhi u công ngh m i đ đáp ng nhu c u đó.ổ ớ ạ ề ệ ớ ể ứ ầ Trong đó không th không nh c đ n các công ngh di đ ng và cácể ắ ế ệ ộ ng d ng trên đó. Trong nh ng n m tr c đây, vi c c p nh t thông

ứ ụ ữ ă ướ ệ ậ ậ

tin c a chúng ta ch y u qua sách báo, radio, tivi,… i u đó gây raủ ủ ế Đ ề s h n ch trong vi c c p nh t thông tin th i gian th c. Nh ng v iự ạ ế ệ ậ ậ ờ ự ư ớ s phát tri n c a công ngh di đ ng, chúng ta có th đem theo bênự ể ủ ệ ộ ể mình nh ng chi c đi n tho i thông minh nh g n t i b t c đâu vàữ ế ệ ạ ỏ ọ ớ ấ ứ có th c p nh t thông tin t i b t kì th i đi m nào. Không nh ng v y,ể ậ ậ ạ ấ ờ ể ữ ậ trên nh ng chi c đi n tho i thông minh hi n nay còn có nh ng ti nữ ế ệ ạ ệ ữ ệ ích, ng d ng tuy t v i h tr cho m t nhu c u nào đó c a conứ ụ ệ ờ ỗ ợ ộ ầ ủ người.

Figure 1 ng d ng th i ti t trên đi n tho iứ ế

(5)

c ng c l i ki n th c v android đã đủ ố ạ ế ứ ề ược h c trong môn "Phát tri nọ ể ng d ng trên các thi t b di đ ng", đ ng th i tìm hi u các công

ứ ụ ế ị ộ ồ ờ ể

ngh liên quan đ xây d ng lên m t ng d ng v th i ti t hoànệ ể ụ ộ ứ ụ ề ờ ế ch nh. ỉ

1.2. Phân tích bài toán

ng d ng xem th i ti t đ c xây d ng có các ch c n ng chính nh

Ứ ụ ờ ế ượ ự ứ ă ư

sau:

 Xem thông tin th i ti t t i đ a đi m hi n t i.ờ ế ạ ị ể ệ ạ

 Xem thông tin d báo th i ti t trong các ngày ti p theo.ự ờ ế ế

 Tìm và thêm các v trí u thích đ theo dõiị ư ể

 Xóa các v trí đang theo dõiị

 Xem các thông tin th i ti t c b n t i m t v trí b t k trên b n đờ ế ơ ả ạ ộ ị ấ ỳ ả ồ Google map

1.3. Các kỹ thuật sử dụng

 S d ng k t h p các lo i layout khác nhau: RelativeLayout,ử ụ ế ợ ạ LinearLayout, ScrollView, TableLayout,..

 Tùy bi n hi n th ListView, DropDown itemế ể ị

 S d ng recycling rowử ụ

 Truy n d li u gi a các activityề ữ ệ ữ

 K thu t x lý multi-threading v i l p AsyncTaskỹ ậ ử ớ ớ

 K thu t làm vi c v i API webservice OpenWeatherMap đ l y dỹ ậ ệ ớ ể ấ ữ li u th i ti t.ệ ờ ế

 K thu t x lý chu i json, chuy n đ i sang java classỹ ậ ử ỗ ể ổ

 K thu t làm vi c v i GoogleMap APIỹ ậ ệ ớ

 K thu t thao tác v i database SQLiteỹ ậ ớ

 X lý các s ki n tử ự ệ ương tác v i ngớ ười dùng

 Hi n th lên notification barể ị

1.4.

Các thư viện sử dụng trong ứng dụng

pub.devrel:easypermissions:2.0.1 : Th vi n giúp đi u khi nư ệ ề ể

các quy n ng d ng t i runtime trong android.ề ứ ụ ạ

com.google.android.gms:play-services-maps:16.1.0 : gói cài đ t giúp ta xây d ng giao di n b n đ google map trong ng d ng.ặ ự ệ ả ồ ứ ụ

com.google.android.gms:play-services-location:16.0.0 : gói cài đ t giúp l y v trí thi t b d a vào Google play servicesặ ấ ị ế ị ự

com.google.code.gson:gson:2.8.5 : Th vi n giúp ta chuy n đ iư ệ ể ổ

các đ i tố ượng Json sang các Java class m t cách nhanh chóng.ộ

1.5. Phân chia công vi c nhóm

Hoàng V n Phiă - Phân tích và xây d ng giao di n t ng quát cho ự ệ ổ ng d ng

ứ ụ

- Code giao di n các Activity thêm v trí theo dõi vàệ ị giao di n b n đệ ả ồ

- Các ch c n ng dùng Google api, ứ ă

(6)

- Hi n th thông báo trên notification barể ị - Làm báo cáo và các ph n riêng.ầ

Nguy n Anh Tu nễ ấ - phân tích và xây d ng giao di n t ng quát cho ự ệ ổ ng d ng

ứ ụ

CH

ƯƠ

NG 2. PHÂN TÍCH VÀ THI T K H TH NG

Ế Ệ

2.1. Các đ i t

ố ượ

ng chính trong h th ng

Các đ i tố ượng chính c a h th ng đủ ệ ố ược t o ra qua vi c phân tích k tạ ệ ế qu là chu i json tr v t API OpenWeatherMap đả ỗ ả ề ừ ược bi u di nể ễ theo hình 2 dưới đây.

Trong đó các thông tin nh n t API đậ ừ ược chuy n v các java class:ể ề  Clouds có thu c tính ộ all là m t s nguyên ch a thông tin t l mâyộ ố ứ ỉ ệ

trên b u tr i theo đ n v %.ầ ờ ơ ị  Coords g m hai thu c tính: ồ ộ

o lon là m t s th c ch a giá tr kinh đ c a m t v trí v iộ ố ự ứ ị ộ ủ ộ ị ớ d u (-) bi u th v trí n m tây bán c u và ngấ ể ị ị ằ ở ầ ượ ạc l i.. o lat là m t s th c ch a giá tr v đ c a m t v trí v i d uộ ố ự ứ ị ĩ ộ ủ ộ ị ớ ấ

(7)

o temp là m t s th c ch a giá tr nhi t đ hi n t i c aộ ố ự ứ ị ệ ộ ệ ạ ủ m t v trí theo đ n v ộ ị ơ ị Kelvin.

o temp_min là m t s th c ch a giá tr nhi t đ nh nh tộ ố ự ứ ị ệ ộ ỏ ấ trong ngày hi n t i c a m t v trí theo đ n v ệ ạ ủ ộ ị ơ ị Kelvin.

o temp_max là m t s th c ch a giá tr nhi t đ cao nh tộ ố ự ứ ị ệ ộ ấ trong ngày hi n t i c a m t v trí theo đ n v ệ ạ ủ ộ ị ơ ị Kelvin.

o sea_level là m t s th c ch a giá tr áp su t khí quy nộ ố ự ứ ị ấ ể trên m c nự ước bi n theo đ n v hPa.ể ơ ị

o grnd_level là m t s th c ch a giá tr áp su t khí quy nộ ố ự ứ ị ấ ể trên m t đ t theo đ n v hPa.ặ ấ ơ ị

o pressure là m t s th c ch a giá tr áp su t khí quy n (ộ ố ự ứ ị ấ ể ở m c nự ước bi n, n u không có d li u sea_level ho cể ế ữ ệ ặ grnd_level) theo đ n v hPa.ơ ị

o humidity là m t s th c ch a giá tr đ m theo đ n v %.ộ ố ự ứ ị ộ ẩ ơ ị  Wind bao g m hai thu c tính: ồ ộ

o speed là m t s th c ch a giá tr t c đ gió theo đ n vộ ố ự ứ ị ố ộ ơ ị mét/giây.

o deg là m t s th c ch a giá tr hộ ố ự ứ ị ướng gió theo đ n v đ .ơ ị ộ  Sys bao g m các thu c tính: ồ ộ

o message là m t s bi n c a h th ng.ộ ố ế ủ ệ ố

o country là m t chu i ch a giá tr mã qu c gia nh VI, US,ộ ỗ ứ ị ố ư JP, …

o sunrise là m t s nguyên ch a giá tr th i gian bình minhộ ố ứ ị ờ theo d ng unix timestamp.ạ

o sunset là m t s nguyên ch a giá tr th i gian hoàng hônộ ố ứ ị ờ theo d ng unix timestamp.ạ

Weather bao g m các thu c tính:ồ ộ

o id là id c a đi u ki n th i ti t hi n t i.ủ ề ệ ờ ế ệ ạ

o main là m t chu i mô t m t nhóm c a tham s th i ti tộ ỗ ả ộ ủ ố ờ ế nh Rain, Snow, …ư

o description là m t chu i mô t chi ti t đi u ki n th i ti tộ ỗ ả ế ề ệ ờ ế trong nhóm.

o icon là m t chu i ch a icon id mô t cho th i ti t hi n t i.ộ ỗ ứ ả ờ ế ệ ạ  OpenWeatherJson là l p ch a t t c thông tin c a chu i json trớ ứ ấ ả ủ ỗ ả

v bao g m: ề ồ

o id là m t s nguyên ch a đ nh danh c a thành ph hi nộ ố ứ ị ủ ố ệ t i.ạ

o dt là m t s nguyên ch a thông tin v th i gian nh n dộ ố ứ ề ờ ậ ữ li u theo ki u unix timestamp.ệ ể

o name là m t chu i ch a tên thành ph .ộ ỗ ứ ố

(8)

2.2. Các Activity c a ng d ng

ủ ứ

2.2.1. Home Activity

2.2.2. Activity thêm v trí theo dõi

ây là activity cho phép ng i dùng:

Đ ườ

- Tìm ki m các v trí mong mu n theo dõi qua ô tìm ki mế ị ố ế autoCompleteTextView

- Xem các v trí đang theo dõi đị ược hi n th trên m t listViewể ị ộ - Xóa m t v trí kh i danh sách đang theo dõi ộ ị ỏ

Các k thu t đỹ ậ ược s d ng:ử ụ

- K t h p gi a các layout khác nhauế ợ ữ

- Tùy bi n item hi n th chi ti t thông tin c a v trí dùng cho cế ể ị ế ủ ị ả autoCompleteView và listView.

- Làm vi c v i c s d li u SQLiteệ ớ ơ ở ữ ệ

2.2.3. Activity hi n th th i ti t trên b n đ

ế

ây là activity cho phép ng i dùng:

Đ ườ

- Xem thông tin th i ti t t i m t đ a đi m b t k trên b n đờ ế ạ ộ ị ể ấ ỳ ả ồ - Xem thông tin th i ti t t i v trí hi n t iờ ế ạ ị ệ ạ

- Thay đ i lo i b n đổ ạ ả ồ Các k thu t đỹ ậ ược s d ng:ử ụ

- T o giao di n b n đ qua Google Map APIạ ệ ả ồ

- L y v trí hi n t i c a ngấ ị ệ ạ ủ ười dùng qua Google play services - L y d li u th i ti t qua API webservices OpenWeatherMapấ ữ ệ ờ ế - X lý đa lu ngử ồ

- Chuy n đ i các đ i tể ổ ố ượng json sang java class tương ngứ - S d ng k t h p gi a các layout khác nhauử ụ ế ợ ữ

- Hi n th thông tin th i ti t lên notification barể ị ờ ế

2.3. C s d li u c a ng d ng

ơ ở ữ ệ

ủ ứ

B ng ''location'' ch a thông tin các v trí mà API OpenWeatherMapả ứ ị cung c p. B ng này dùng đ l u tr các v trí đang theo dõi c aấ ả ể ư ữ ị ủ người dùng được thêm thông qua activity thêm v trí theo dõi.ị

Trường Ki u d li uể ữ ệ Mô tả

_id INTEGER là trường b t bu c c a sqlite choắ ộ ủ m i b ng, t đ ng t ng.ỗ ả ự ộ ă

id TEXT là đ nh danh c a m t v tríị ủ ộ ị name TEXT là tên c a m t v tríủ ộ ị

(9)

CH

ƯƠ

NG 3 CÀI

ĐẶ

T CH

ƯƠ

NG TRÌNH

3.1. C u hình các API và th vi n s d ng

ư

ử ụ

3.1.1. C u hình API OpenWeatherMap

i t i

Đ ớ https://openweathermap.org/ và n nút sign up đ đ ng kí tài kho nấ ể ă ả

Giao di n đ ng ký tài kho n ệ ă ả

(10)

Sau khi đ ng nh p chúng ta vào tab API keys đ t o key truy c p API choă ậ ể ạ ậ ng d ng.

ứ ụ

Figure 3 giao di n t o api key c a OpenWeatherMapệ

3.1.2. C u hình API GoogleMap

i t i
(11)

Figure 4 giao di n t o project m i trong google cloud platformệ

Ch n tab API & Services > Dashboard, sau đó click ch n Enable APIs andọ ọ Services

Figure 5 giao di n APIs & Servicesệ

(12)

Figure 6 giao di n enable map sdk cho androidệ

Ti p t c ch n tab API & Services > Credentials, click "Create credentials"ế ụ ọ > "API key" đ t o m i m t API key cho ng d ng. Ho c ta có th s d ngể ạ ớ ộ ứ ụ ặ ể ử ụ luôn link đã được t o trong google_maps_api.xml đ t o API key.ạ ể ạ

Figure 7 giao di n t o API key trong credentialsệ

(13)

Figure 8 n i dung file google_maps_api.xmlộ

3.2. Activity home

3.3. Activity thêm v trí theo dõi

3.3.1. Giao di n

(14)

3.3.2. Code các b

ướ

c x lý

Bước 1: tìm l i các view trong activityạ

Bước 2: xây d ng m t l p adapter m i cho autoCompleteTextViewự ộ ớ ớ

(15)

Bước 4: xây d ng m t l p adapter m i cho listView, l y d li u danh sách ự ộ ớ ớ ấ ữ ệ đã có t c s d li uừ ơ ở ữ ệ

(16)
(17)

3.4. Activity xem th i ti t trên map

ế

3.4.1. Giao di n

3.4.2. L y v trí thi t b Android location

ế

(18)

 LocationManager.GPS_PROVIDER - nguồn này xác định vị trí dựa trên vệ tinh.

 LocationManager.NETWORK_PROVIDER - nguồn này xác định vị trí dựa trên cột thu phát sóng của mạng di động và các điểm truy cập WIFI.

 LocationManager.PASSIVE_PROVIDER - nguồn này trả về vị trí sinh ra bởi các nguồn khác. Ví dụ bạn nhận được vị trí cập nhật một cách thụ động khi mà các ứng dụng khác hoặc dịch vụ khác yêu cầu mà không phải bạn thực sự yêu cầu điều này.

Google Play services location API là cách mới mà Google giới thiệu để có thể lấy được vị trí hiện tại của thiết bị. API này không dùng "Fused Location Provider" mà tự động chọn nguồn cung cấp vị trí để sử dụng dựa trên độ chính xác và mức tiêu thụ pin. API này cũng được Google khuyến khích sử dụng thay thế cho Android Location API cũ. Các bước th c hi n đự ệ ược mô tả dưới đây.

(19)

Bước 2: Ki m tra thi t b có h tr Google play servicesể ế ị ỗ ợ

if(GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(this)== ConnectionResult.SUCCESS)

return true;

(20)
(21)
(22)

3.4.3. Code x lý các s ki n ng

ườ

i dùng t

ươ

ng tác trên b n đ

(23)
(24)

3.5. Demo ng d ng

Dưới đây là các sreenshot demo c a ng d ngủ ứ ụ

(25)

3.5.2. Activity thêm v trí

Khi người dùng nh p ký t b t kì vào ô tìm ki m, ng d ng s hi n th m tậ ự ấ ế ứ ụ ẽ ể ị ộ danh sách các v tríị

Figure 9 ch c n ng thêm v trí theo dõi m iứ ă

Khi người dùng n ch n m t v trí, v trí đó s đấ ọ ộ ị ị ẽ ược thêm vào c s d li u ơ ở ữ ệ và hi n th lên danh sách đang theo dõi c a ng d ngể ị ủ ứ ụ

(26)

Khi người dùng n gi m t v trí s có m t dialog hi n th tùy ch n có ấ ữ ộ ị ẽ ộ ể ị ọ mu n xóa v trí kh i danh sách theo dõi không.ố ị ỏ

Figure 11 h p tho i xác nh n xóa v trí kh i danh sách theo dõiộ

(27)

Figure 12 thông báo yêu c u ngầ ười dùng m k t n i internetở ế

ng d ng s yêu c u ng i dùng c p quy n truy c p v trí đ có th s

Ứ ụ ẽ ầ ườ ấ ề ậ ị ể ể ử

d ng ch c n ng myLocationụ ứ ă

Figure 13 ng d ng yêu c u quy n truy c p v tríứ

(28)

Figure 14 thông báo khi người dùng không c p truy nấ

Khi người dùng n nút myLocation s đấ ẽ ược yêu c u b t GPS n u GPS ch a ầ ậ ế ư được b t, và đ a giao di n đ n menu setting GPSậ ư ệ ế

(29)

Figure 16 menu cài đ t b t GPSặ

Khi GPS đã được b t, ng d ng s chuy n t i v trí hi n t i c a ngậ ứ ụ ẽ ể ớ ị ệ ạ ủ ười dùng và hi n th thông tin th i ti t t i đóệ ị ờ ế ạ

(30)

Khi người dùng click vào v trí b t kì trên b n đ , ng d ng s hi n th ị ấ ả ồ ứ ụ ẽ ể ị thông tin th i ti t c b n t i v trí đó.ờ ế ơ ả ạ ị

(31)
(32)

CH

ƯƠ

NG 4 K T LU N

4.1. K t qu đ t đế ả ạ ược

Trên đây là toàn b nh ng phân tích và thi t k h th ng ng d ng "Xem d báo ộ ữ ế ế ệ ố ứ ụ ự th i ti t" trên android v i m c đích giúp m i ngờ ế ớ ụ ọ ười có th theo dõi tình hình th i ể ờ ti t m i lúc, m i n i v i chi c smartphone c a mình. V c b n ng d ng đã đáp ế ọ ọ ơ ớ ế ủ ề ơ ả ứ ụ

ng đ y đ yêu c u c a bài toán nhóm đã đ t ra ban đ u, giao di n đ n gi n, d

ứ ầ ủ ầ ủ ặ ầ ệ ơ ả ễ

s d ng, các ch c n ng có th s d ng n đ nh, không có l i nghiêm tr ng nào ử ụ ứ ă ể ử ụ ổ ị ỗ ọ x y ra…..ả

(33)

Gambar

Figure 1 ng d ng th i ti t trên đi n tho iứụờếệạ
Figure 2 giao di n đ ng ký tài kho n OpenWeatherMapệăả
Figure 3 giao di n t o api key c a OpenWeatherMapệạủ
Figure 4 giao di n t o project m i trong google cloud platformệạớ
+7

Referensi

Garis besar

Dokumen terkait

Câu 5: Nhà nước sử dụng các công cụ chủ yếu nào để khuyến khích các hoạt động kinh doanh trong những ngành nghề có lợi cho sự phát triển kinh tế - xã hội của đất nước: A.. Tỉ giá

Từ lí thuyết hoạt động lời nói đến việc khuyến khích học sinh sử dụng tiếng Anh Hoạt động lời nói là một trường hợp riêng của hoạt động con người, thực hiện sự giao tiếp bằng lời

LƯỢC SỬ NGHIÊN CỨU Về tác động của giáo dục và chính sách khuyến khích giáo dục đối với tăng trưởng kinh tế, có rất nhiều công trình nghiên cứu trong và ngoài nước đã được công bố..

Theo đó, bên cạnh việc tuyên truyền nâng cao nhận thức cộng đồng, doanh nghiệp về tác hại của chất thải túi nilon khó phân hủy đối với môi trường và khuyến khích sử dụng các sản phẩm

Đặc biệt, CE coi dịch vụ hóa là công cụ khuyến khích các doanh nghiệp kéo dài thời hạn sử dụng sản phẩm bằng cách chuyển các nguồn lực đầu vào thành các chi phí cần tránh, hơn nữa, CE

Do vậy, để đảm bảo nguồn nước sản xuất đạt theo QCVN 01: 2009/BYT, cần thực hiện các biện pháp sau: + Đối với những khu vực hiện đã có nguồn nước máy, khuyến khích các cở sở sử dụng

Giải pháp này đã được áp dụng phổ biến tại Trung Quốc6 và được khuyến khích ở nhiều quốc gia khác.7,8 Kết quả nghiên cứu của chúng tôi đã cũng cấp bằng chứng cho thấy tác động của

Để xây dựng đồ thị đáp ứng liều hấp thụ, đầu tiên phải xác định được vị trí của 2 loại nguồn bức xạ này có giá trị suất liều hấp thụ trong không khí hay còn gọi là suất kerma không khí,