Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 69 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
69
Dung lượng
5,05 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT PHẦN MỀM KHỐ LUẬN TỐT NGHIỆP XÂY DỰNG ỨNG DỤNG TÌM ĐỊA ĐIỂM TRÊN ANDROID BẰNG GOOGLE API Giảng viên hướng dẫn : TS NGUYỄN ANH TUẤN Sinh viên thực : NGUYỄN THÀNH LUÂN – 07520215: Khoa: CNPM02 Khoá : TP Hồ Chí Minh, tháng năm 2012 ii LỜI MỞ ĐẦU Với phát triển công nghệ lĩnh vực vi n thông di động, điện thoại di động ngày dần xóa bỏ hồn tồn hình ảnh điện thoại thơng thường trở thành điện thoại thơng hay gọi với tên smartphone Trước smartphone xu t hiện, P trở thành trợ thủ người dùng thường phải gắn với việc quản lý công việc lại khơng thể thường xun giao tiếp với máy tính phải di chuyển nhiều T t nhiên P so với r t lỗi thời khơng nhiều tính ứng dụng, mà chúng mang lại smartphone ngày kế thừa phát huy Những smartphone đời với định nghĩa đơn giản điện thoại có hệ điều hành thời tạo nên sốt Tuy nhiên theo thời gian, khả giao tiếp chúng với người khỏa l p thực tế chúng chưa đủ tầm thay cho máy tính Thế mắt hệ smartphone với cải tiến đáng kể thay đổi hồn tồn quan niệm smartphone, khơng điện thoại đơn mà trở thành máy tính có kích cỡ điện thoại Đóng vai trò then chốt cho chuyển xu t hệ điều hành iOS, ndroid, hệ hình cảm ứng với giá thành hồn tồn ch p nhận , mạng xã hội phát triển mạnh , giới trẻ tin dùng để chia thông tin thú vị sống Nắm bắt lợi điểm đó, nhóm làm luận văn định chọn đề tài ứng dụng tìm kiếm địa điểm PI giúp người sử dụng d dàng tìm địa điểm cần tìm , qua ứng dụng có phần đơn giản thể đầy đủ giá trị mà smartphone hệ dùng hệ điều hành Android mang đến Ứng dụng cho phép người dùng tìm địa điểm mong muốn hay GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân iii địa điểm để mang lại trại nghiệm , địa điểm thể map , tạo giao diện trực quan cho người sử dụng để d dàng tìm địa điểm phù hợp o hiểu biết thời gian nghiên cứu hạn chế nên khơng tránh khỏi luận văn có sai sót, hạn chế Kính mong Thầy, Cơ bạn giúp đỡ, đóng góp ý kiến để đề tài hồn thiện thực ti n Chúng tơi xin chân thành cảm ơn TP Chí Minh, ngày 10 tháng năm 2012 Tác giả GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân iv LỜI C M N Nhóm chúng tơi muốn gửi lời cảm ơn chân thành sâu sắc nh t đến TS Nguy n nh Tu n, người tận tình hướng dẫn tạo điều kiện tốt nh t cho nhóm q trình tìm hiểu, nghiên cứu thực đề tài Nhóm xin chân thành cám ơn Thầy Cô khoa K Thuật Phần Mềm trường Đại học Công Nghệ Thông Tin – Đại học Quốc gia Thành phố Chí Minh tạo điều kiện cho chúng chúng em kiến thức tảng cần thiết thời gian học tập khoa Cuối cùng, nhóm xin bày tỏ lòng cảm ơn chân thành đến gia đình, người bạn b khích lệ động viên nhóm hồn thành đề tài TP Chí Minh, ngày 10 tháng năm 2012 Người thực GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân v LỜI CAM ĐOAN Tôi, Nguy n Thành Luân xin xác nhận nội dung trình bày báo cáo hoàn toàn dựa tổng hợp lý thuyết hiểu biết thực tế Mọi thông tin trích dẫn thích liệt kê r ràng thành tài liệu tham khảo Tôi xác nhận đề tài nghiên cứu cơng trình hướng dẫn TS Nguy n nh Tu n giúp đỡ bạn học khóa TP Chí Minh, ngày 10 tháng năm 2012 Người thực GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân vi NHẬN X T CỦA GI NG VI N HƯỚNG D N GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân vii NHẬN X T CỦA GI NG VI N PH N BIỆN GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân viii MỤC LỤC DANH MỤC HÌNH V XI TÓM TẮT LUẬN VĂN CHƯ NG 1.1 Tên đề tài 1.2 Từ khóa 1.3 Chuyên ngành 1.4 Thông tin sinh viên thực 1.5 Thông tin giảng viên hướng dẫn 1.6 Nội dung giới hạn đề tài 1.6.1 Nội dung đề tài 1.6.2 Giới hạn đề tài 1.7 nghĩa đề tài 1.8 C u trúc luận văn CHƯ NG ệ điều hành ndroid 2.1 2.1.1 Lịch sử phát triển 2.1.1.1 Sáng lập 2.1.1.2 Một phần Google 2.1.1.3 Phát triển 2.1.1.4 Open Handset Alliance 2.1.1.5 Các phiên phát hành 2.1.2 Thiết kế 2.1.2.1 Linux 10 2.1.2.2 Tính 11 2.1.3 ướng sử dụng 13 2.1.4 Ứng dụng 14 GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân ix 2.1.4.1 Android Market 14 2.1.4.2 Tính bảo mật ứng dụng 14 2.1.4 Thành phần ứng dụng tảng ndroid 15 2.1.5 Quản lý vòng đời ctivity (Life cycle ctivity) 16 2.2 Tổng quan k thuật định vị 18 2.2.1 Các k thuật xác định vị trí bên (indoor location) 18 2.2.2 Các k thuật xác định vị trí bên ngồi (outdoor location) 19 2 Các k thuật dựa vào thông tin người dùng cuối (client techniques) 19 2 2 Các k thuật dựa vào thông tin từ máy chủ (server techniques) 20 2.3 Tổng quan Maps PI 21 2.3.1 Google Map API 21 2.3.2 L y Mã M 23 2.3.3 L y Key GoogleMap PI 24 L y Key JavaScrip v3 PI 26 2.4 Java Script Object Notation – JSON 29 2.5 JavaScript 30 CHƯ NG 31 3.1 Giới thiệu chương trình 31 3.2 Mô tả ứng dụng ndroid di động 31 Mơ hình thiết kế giao diện 31 2 C u Trúc Ứng ụng 32 CHƯ NG 35 Xây dựng file nội dung scrip tải Google Maps PI JavaScript TTPS 35 Các thư viện hổ trợ 39 4.3 Xây ựng Ứng ụng Trên ndroid 40 4.3.1 Giao tiếp với thư viện Google Maps PI J OM 1 40 4.3.2 Các xử lý ứng dụng 42 4.3.2.1 GV Xử lý Categories 42 : TS Nguy n nh Tu n SVT : Nguy n Thành Luân x 4.4 4.3.2.2 L y thông tin chi tiết địa điểm 43 4.3.2.3 Map & Direction 45 4324 Thông tin liên lạc địa điểm 47 4.3.2.5 Setting 49 Một số hình ảnh 51 CHƯ NG 54 5.1 Các kết đạt 54 5.2 ướng nghiên cứu phát triển 54 TÀI LIỆU THAM KH O 56 GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 42 Trong giao diện code , click phải vào project-> properties->Java Buid Path >Add External JARs chọn vào thư viện jdom tải link , cuối ta : Hình 25 Jdom 4.3.2 Cá x 4.3.2.1 X ý hính ứng ụng ý Categories Categories ứng dụng sử dung thư viện jdom dùng để xử lý kiểu liệu XML xây dựng list categories sau : GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 43 Hình 26 Mơ hình xử lý categories 4.3.2.2 L y th ng tin hi tiết ủ ị iểm Thông tin địa điểm ứng dụng trả sau dùng công cụ search hay chọn thành phần list categories thông tin thể list thành phần có thơng tin địa , hình anh , map ,… khác xây dựng class PlaceDetailInfo() GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 44 Hình 27 Use case detail info Thông tin địa điểm l y thông qua Google Place PI phần Google Map API Web Service bao gồm : Direction API ,Distance Matrix API,Elevation API,Geocoding API ,Place API Hình 28 Search place design Thông tin địa điểm l y xây dựng thành list thông qua class ShowListPlaceActivity PlaceDetailInfo GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 45 String url = "https://maps.googleapis.com/maps/api/place/details/json?reference=" + idPrefer.get(getPlaceID) + "&sensor=true&key=AIzaSyBAUhFMBCrwdmvTYyy6C1FOTOFTISD7gwA"; JSONParser jParser = new JSONParser(); getJsonObject.add(jParser.getJSONFromUrl( urlPhoto(getDataPlace.myArriveLng - setRadius, getDataPlace.myArriveLat - setRadius, getDataPlace.myArriveLng + setRadius, getDataPlace.myArriveLat +setRadius) ,0)); getJsonObject.add(jParser.getJSONFromUrl(url, 1)); return getJsonObject; Hình 29 Detail info design 4.3.2.3 Map & Direction Khi có có yêu cầu xem map direction địa điểm activity PlacteDetailInfo ứng dụng sử dụng JavaScrip PI v3 kết nối với máy chủ Google thông qua url map html hay map_direction html (thư mục asset) GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 46 Hình 30 Use case Map & Direction Map iretion trả thông qua url thể webview Kích hoạt JavaScript webview : WebSetting webSetting= MyWebview.getSettings(); webSetting.setJavaScriptEnabled(true); Tạo mối liên kết Android Javascript MyWebview.addJavaScriptInterface(new JavascriptInterface(),”Android”); Sử dụng hàm loadurl() để load nội dung url vào webview MyWebview.loadUrl(file:///android_asset/map.html); Gọi hàm url viết javascript lên android MyWebview.loadUrl(“javascript:function()”); Gọi hàm javascript Android.function(); GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 47 Hình 31 Map & direction design 4.3.2.4 Th ng tin i n ủ ị iểm Mỗi địa điểm có số điện thoại liên lạc , liệu l y thông class PlaceDetailInfo , lựa chọn contact địa điểm có contact : thực gọi đến địa điểm lưu vào contact thiết bị GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 48 Hình 32 Use case contact àm Call() thực gọi đến contact địa điểm if( numberPhone.length() != 0){ Intent dialIntent = new Intent( "android.intent.action.DIAL",Uri.parse("tel:"+ numberPhone)); act.startActivity(dialIntent); } àm Save() lưu trữ contact địa điểm vào danh bạ thiết bị Intent i = new Intent(Intent.ACTION_INSERT); i.setType(ContactsContract.Contacts.CONTENT_TYPE); i.putExtra(ContactsContract.Intents.Insert.NAME, name); i.putExtra(ContactsContract.Intents.Insert.PHONE,numberPhone); i.putExtra(ContactsContract.Intents.Insert.PHONE_TYPE,phoneType); act.startActivity(i); Gọi class ContactPhone() để thực gọi ContactPhone c = new ContactPhone(callActivity); c.setName(getDataPlace.contactDetail.get(0)); c.setNumberPhone(getDataPlace.contactDetail.get(1),2); GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 49 Hình 33 Contact design 4.3.2.5 Setting Setting xay dựng menu ứng dụng , thay đổi ngôn ngữ ( anh – việt) ứng dụng , lựa chọn bánh kính để tìm kiểm địa điểm với cách sử dụng ứng dụng thông tin ứng dụng Hình 34 Use case setting GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 50 Xây dựng hàm xác định khoảng cách tìm kiếm địa điểm CalculationByDistance(GeoPoint StartP, GeoPoint EndP) { double lat1 = StartP.getLatitudeE6()/1E6; double lat2 = EndP.getLatitudeE6()/1E6; double lon1 = StartP.getLongitudeE6()/1E6; double lon2 = EndP.getLongitudeE6()/1E6; double dLat = Math.toRadians(lat2-lat1); double dLon = Math.toRadians(lon2-lon1); double a = Math.sin(dLat/2) * Math.sin(dLat/2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2))* Math.sin(dLon/2) * Math.sin(dLon/2); double c = * Math.asin(Math.sqrt(a)); return Radius * c; } setLanguage() : hàm lựa chọn ngơn ngữ setUpdateDistance() : hàm cập nhập bán kính vị trí tìm kiếm setDistance() : hàm l y giá trị distance người dùng chọn Hình 35 Setting design GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 51 4.4 Một s h nh nh GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 52 GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 53 Hình 36 Một số hình ảnh ứng dụng GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 54 CHƯ NG K T LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Cá ết qu t ợ Đề tài hoàn thành với ưu điểm có được: - Giao diện d sử dụng, chức bố trí hợp lý, tiện dụng -Các địa điểm tìm kiếm trả đầy đủ - Tim hiểu tổng quan PI (Google Map JavaScrip v3) Đề tài số điểm hạn chế: - Tốc độ hoạt động hệ thống chậm - Thơng tin địa điểm chưa đầy đủ - ình ảnh thông tin địa điểm chưa tốt -Giao diện chưa đẹp 5.2 H ớng nghi n ứu v phát triển Tiếp tục hoàn thiện hệ thống giao diện để khuyến khích nhiều người sử dụng Trong tương lai đưa ứng dụng lên bậc cao mạng xã hội ,sử dung Ontology để đưa gợi ý xác cho việc đánh giá địa điểm nh t cho người dùng dựa theo liên kết bạn b Đề tài phát triển đa dạng mạnh , liên kết với tài khoản mạng xã hội , địa điểm có comment đánh giá GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 55 Ngồi ra, tiện lợi đào tạo thói quen sử dụng cho người dùng phần r t quan trọng đóng góp vào thành cơng ứng dụng Tuy nhiên, giới hạn thời gian đề tài, phần đánh giá, thiết kế tiện lợi chưa quan tâm mức Trong thời gian tới, chúng tơi đánh giá chương trình có tham gia người dùng cụ thể thời gian dài để có nhìn tồn diện GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân 56 TÀI LIỆU THAM KH O Murphy, M., Beginning Android 2, Apress, 2010 Meier, R., Professional Android Application Development, Wrox Press Ltd., 2008 Nguyen M T, Truong (2012) ProMap: Nghiên cứu Google Maps PI xây dựng ứng dụng ndroid, Software Enginering epartment, University of Information Teachnology Reto Meier (2010), Professional ndroid™ pplication evelopment, Indiana: Wiley Kuniavsky, M., Smart Things: Ubiquitous Computing User Experience Design, Morgan Kaufmann, 2010 Poslad, S., Ubiquitous Computing: Smart Devices, Environments and Interactions, Wiley Publishing, 2009 Subbu Allamaraju (2010), RESTful Web Services Cookbook (First Edition), US : O’Reilly Media, Inc Douglis, F., It's All About the (Social) Network, Internet Computing, IEEE, 2010, 14, -6 Bill Burke (2009), RESTful Java with JAX-RS, US : O’Reilly Media, Inc GV : TS Nguy n nh Tu n SVT : Nguy n Thành Luân ... việc mong muốn Mục tiêu đề tài "Xây dựng ứng dụng tìm địa điểm điện thoại ndroid " , đề tài tạo ứng dụng chạy điện thoại với Android sử dụng PI Google để tìm kiếm địa điểm yêu thích (quán ăn , quán... chọn xác việc tìm địa điểm yêu thích CHƯ NG TỔNG QUAN ĐỀ TÀI 1.1 T n ềt i Xây dựng ứng dụng mạng xã hội địa điểm hệ điều hành ndroid 1.2 T h Địa Điểm – Java Srcip – Android – Google API 1.3 Chuy... địa điểm PI giúp người sử dụng d dàng tìm địa điểm cần tìm , qua ứng dụng có phần đơn giản thể đầy đủ giá trị mà smartphone hệ dùng hệ điều hành Android mang đến Ứng dụng cho phép người dùng tìm