Hình 10 – Biểu đồ lớp quản lý danh sách các yêu cầu gửi lên máy chủ của các ứng dụng
Lớp XMLRequest
Thuộc tính Mô tả thuộc tính
URL: String Đây là một thuộc tính được sử dụng thông qua lớp cho các phương thức khác nhau
xml: String Đây là một thuộc tính được sử dụng thông qua lớp cho các phương thức khác nhau
httpClient:
DefaultHttpClient
Đây là một đối tượng của DefaultHttpClient được sử dụng thông qua lớp cho các phương thức khác nhau
httpPost: HttpPost Đây là một đối tượng của HttpPost được sử dụng thông qua lớp cho các phương thức khác nhau
httpResponse: HttpResponse
Đây là một đối tượng của HttpResponse được sử dụng thông qua lớp cho các phương thức khác nhau
httpEntity: HttpEntity Đây là một đối tượng của HttpEntity được sử dụng thông qua lớp cho các phương thức khác nhau
domDocument: Document
Đây là một đối tượng của Document được sử dụng thông qua lớp cho các phương thức khác nhau
Phƣơng thức getXMLfromURL(String URL)
Mô tả phƣơng thức Bằng cách nhập vào đường dẫn đến máy chủ có lưu dữ liệu mà người dùng cần
Mô tả postXMLtoURL(String URL, String filePath, String xml)
Phƣơng thức getDomDocument(String URL)
Mô tả phƣơng thức Lấy phẩn tử DOM từ XML
Phƣơng thức getValue(Element item, String str)
Mô tả phƣơng thức Lấy giá trị của từng phần tử trong NodeList
Phƣơng thức getFileContent(File file)
Mô tả phƣơng thức Lấy nội dung từ tệp XML trong đường dẫn được truyền
Lớp JSONLoader
Thuộc tính Mô tả thuộc tính
is: InputStream Đây là một đối tượng của InputStream đươc sử dụng thông qua lớp cho các phương thức khác nhau
jObj: JSONObject Đây là mộtthuộc tính đươc sử dụng thông qua lớp cho các phương thức khác nhau
json: String Đây là mộtthuộc tính đươc sử dụng thông qua lớp cho các phương thức khác nhau
Phƣơng thức makeHttpRequest(String url, String method, List<NameValuePair> params)
Mô tả phƣơng thức Lấy tệp JSON từ máy chủ bằng cách truyền vào phương thức, đường dẫn hay params
Method objectJSON(InputStream is,JSONObject jObj)
Method Description Lấy đối tượng JSON từ đường dẫn
Phƣơng thức stringJSON(InputStream is,JSONObject jObj)
Phƣơng thức displayImage(Context context, String url, int
loader,ImageView imageView)
Mô tả phƣơng thức Tải ảnh từ đường dẫn của máy chủ
2.4.3 Quản lý các thông báo từ máy chủ của các ứng dụng hay ngƣời dùng
Hình 11 – Biểu đồ lớp quản lý thông báo từ máy chủ của các ứng dụng hay ngƣời dùng
Lớp NotificationContent
Thuộc tính Mô tả thuộc tính
title : String Đây là một thuộc tính được sử dụng thông qua lớp cho các phương thức để mô tả tiêu đề của thông báo
info : String Đây là một thuộc tính được sử dụng thông qua lớp cho các phương thức để mô tả nội dung được thể hiện trong thông báo
eventTime : long Đây là một thuộc tính được sử dụng thông qua lớp cho các phương thức để thể hiện thời gian diễn ra sự kiện
startTime : long Đây là một thuộc tính được sử dụng thông qua lớp cho các phương thức để thể hiện thời gian hiện thông báo
latitude : double Đây là một thuộc tính được sử dụng thông qua lớp cho các phương thức để thể hiện vị trí mà người dùng muốn được thông báo
longitude : double Đây là một thuộc tính được sử dụng thông qua lớp cho các phương thức để thể hiện vị trí mà người dùng muốn được thông báo
method : Boolean Đây là một thuộc tính được sử dụng thông qua lớp để thể hiện phương thức nào sẽ được làm việc với server
method = true (Phương thức POST) method = false (Phương thứcGET)
url : String Đây là một thuộc tính được sử dụng thông qua lớp cho các phương thức để thể hiện đường dẫn của server
nNotificationContent: NotificationContent
Đây là một thuộc tính được sử dụng thông qua lớp cho các phương thức để thể hiện thông tin muốn được thông báo
Lớp ProcessNotification
Phƣơng thức setNotification(context, nNotificationContext)
Mô tả phƣơng thức Thiết lập thông báo từ đối tượng NotificationContent bao gồm thời gian, nội dung và tiêu đề của thông báo, biểu tượng
Phƣơng thức getListNotification(String url,boolean method)
Mô tả phƣơng thức Lấy danh sách NotificationContent từ server
2.4.4 Quản lý các kết nối mạng Internet của ngƣời dùng
Lớp CheckNetwork
Phƣơng thức isConnectingInternet()
Mô tả phƣơng thức Trả về giá trị true nếu có mạng và ngược lại
Lớp Network
Phƣơng thức setMobileDataEnabledMethod(Context context, boolean check)
Mô tả phƣơng thức Giúp thiết bị bật hay tắt 3G một cách tự động
Phƣơng thức turnOnOffWifi(Context context, WifiManager wifimanager, boolean check)
Mô tả phƣơng thức Giúp thiết bị bật hay tắt WiFi một cách tự động
Phƣơng thức turnOnOffGPS(Context context, boolean check)
2.4.5 Quản lý các tin nhắn nhắc nhở từ máy chủ của các ứng dụng
Hình 13 – Biểu đồ lớp quản lý các tin nhắn nhắc nhở từ máy chủ của các ứng dụng
Lớp ReminderMessage
Phƣơng thức sendNotification(Context context, String number, String message)
Mô tả phƣơng thức Gửi thông báo bằng tin nhắn SMS(Giống như gửi tin nhắn SMS giả), ta có thể thiết lập thời gian, nội dung cho thông báo
Phƣơng thức setSound(Uri uri, Activity activity)
Mô tả phƣơng thức Phát nhạc chuông từ đường dẫn
Phƣơng thức setVibrate(Context context)
Mô tả phƣơng thức Thiết lập chế độ rung mặc định
Phƣơng thức toggleFlashLight(Camera mCamera, Parameters mParams, boolean on)
Mô tả phƣơng thức Điều chỉnh trạng thái của đèn flash
Phƣơng thức turnOn(Camera mCamera, Parameters mParams, boolean on)
Mô tả phƣơng thức Bật chế độ đèn flash
Phƣơng thức turnOff(Camera mCamera, Parameters mParams, boolean on)
Mô tả phƣơng thức Tắt chế độ đèn flash
Lớp ReminderAlarm
Thuộc tính Mô tả thuộc tính
NotificationCount: int Đây là thuộc tính được sử dụng thông qua lớp cho các phương thức để lưu ID cho mỗi thông báo hiển thị alarmManager:
AlarmManager
Đây là một đối tượng của AlarmManager được sử dụng thông qua lớp cho các phương thức
Phƣơng thức checkTime(String timeRemind)
Mô tả phƣơng thức Check time that user choose is right or wrong
Phƣơng thức setAlarm(Context context, String title, String content, int actionID)
Mô tả phƣơng thức Tạo đối tượng SimpleDateFormat để xác nhận định dạng định dạng của dữ liệu ngày nhập vào và dữ liệu ngày trả về , trả về đối tượng PendingIntent để thiết lập báo thức
Phƣơng thức remindDefaultAlarm(Context context, String title, String content, long when)
Mô tả phƣơng thức Thiết lập báo thức để gửi thông báo đúng giờ
Phƣơng thức setTime(String day)
Mô tả phƣơng thức Lấy giá trị thời gian từ chuỗi ngày được nhập vào để trả về kiểu long
Phƣơng thức setTime(Context context, int mDay, int mMonth, int mYear,int mHour, int mMinute)
Mô tả phƣơng thức Trả về giá trị thời gian với kiểu long
Phƣơng thức setFormatTime(String day)
Mô tả phƣơng thức Trả về giá trị thời gian với kiểu long
Phƣơng thức setFormatTime(String day)
Mô tả phƣơng thức Trả về giá trị thời gian với kiểu long
Phƣơng thức repeatExactAlarm(Context context, String title, String content, long when, int repeatMinute)
Mô tả phƣơng thức Thiết lập báo thức để gửi thông báo lặp lại nhiều lần cho đến khi người dùng hủy nó
Phƣơng thức repeatInexactAlarm(Context context, String title, String content, long when, int repeatMinute)
2.4.6 Hỗ trợ xây dựng phòng chat
Lớp CRSSocketChannel
Thuộc tính Mô tả thuộc tính
NotificationCount: int Đây là thuộc tính được sử dụng thông qua lớp cho các phương thức để mô tả ID cho mỗi thông báo
alarmManager: AlarmManager
Đây là đối tương của AlarmManager được sử dụng thông qua lớp cho các phương thức để thiết lập báo thức
Phƣơng thức connectServer(String ursl, String username, String appID)
Mô tả phƣơng thức Kết nối đến máy chủ của thư viện
Phƣơng thức sendMessage(String data)
Mô tả phƣơng thức Gửi tin nhắn tới những người dùng khác bằng cách sử dụng máy chủ riêng của thư viện
Phƣơng thức createRoom(String data)
Mô tả phƣơng thức Tạo phòng chat trên máy chủ
Phƣơng thức leaveRoom(String data)
Mô tả phƣơng thức Rời khỏi phòng chat trên máy chủ
Phƣơng thức removeRoom(String data)
Mô tả phƣơng thức Xóa phòng khỏi máy chủ
Phƣơng thức disconnectServer()
Phƣơng thức sendMessageWhisper(String data)
Mô tả phƣơng thức Gửi tin nhắn whisper cho những người dùng khác
Phƣơng thức joinRoom(String data)
Mô tả phƣơng thức Tham gia phòng trên máy chủ
Lớp CRSIntentService
Phƣơng thức onMessage(String data)
Mô tả phƣơng thức Gửi hay nhận tin nhắn cho những người dùng khác
Phƣơng thức onMessageWhisper(String data)
Mô tả phƣơng thức Gửi hay nhận whisper tin nhắn cho người dùng khác
Phƣơng thức getAlluserOnline()
Mô tả phƣơng thức Gửi whisper tin nhắn cho người dúng khác
Phƣơng thức hasUserOnline(String data)
Mô tả phƣơng thức Kiêm tra trạng thái của những người dùng đang online trên hệ thống
Phƣơng thức getRoomID(String data)
Mô tả phƣơng thức Lấy ID của phòng chat muốn tham gia từ máy chủ
Phƣơng thức errorMessage(String data)
Phƣơng thức getAlluserOnline()
Mô tả phƣơng thức Gửi whisper tin nhắn cho người dùng khác
Phƣơng thức hasUserOnline(String data)
Mô tả phƣơng thức Kiêm tra trạng thái của những người dùng đang online trên hệ thống
Phƣơng thức socket.on('Client connect to server', function(Key, userName)
Mô tả phƣơng thức Kết nối với máy chủ
Phƣơng thức hasUserOffline(String data)
Mô tả phƣơng thức Kiểm tra trạng thái của những người dùng offline trên hệ thống
Phƣơng thức getRoomID(String data)
Mô tả phƣơng thức Lấy ID của phòng chat muốn tham gia từ máy chủ
Phƣơng thức socket.on("Message client to server",function(data))
Mô tả phƣơng thức Kết nối người dùng với máy chủ
Phƣơng thức socket.on('disconnect' ,function(data)
2.4.7 Quản lý tài khoản
Lớp AccountAction
Phƣơng thức createAccount(String Url,String id,String name,String password,String TAG_SUCCESS,JSONParser jsonParse)
Mô tả phƣơng thức Cho phép tạo thêm tài khoản mới trong cơ sở dữ liệu với giá trị bao gồm name, id, password.
Phƣơng thức readAccount(String Url,String id,String
TAG_ID,JSONParser jsonParse,String TAG_SUCCESS, String TAG_USER,String TAG_NAME,String
TAG_PASS,String str1,String str2)
Mô tả phƣơng thức Get information of a row in database with values such as name, password by id was input
Phƣơng thức deleteAccount(String Url,String id,String
TAG_ID,JSONParser jsonParse,String TAG_SUCCESS)
Mô tả phƣơng thức Cho phép xóa bỏ thông tin của tài khoản trong cơ sở dữ liệu của hệ thống
Phƣơng thức editAccount(String Url,String id,String name,String pass,String TAG_ID,String TAG_NAME,String TAG_PASSWORD, JSONParser jsonParse,String TAG_SUCCESS)
Mô tả phƣơng thức Cho phép chỉnh sửa thông tin của tài khoản nhất định với thông tin về name và password
2.5 Dự kiến kết quả đạt đƣợc
Xây dựng được một thư viện có thể giúp người dùng truyền và nhận dữ liệu từ các máy chủ khác nhau của các ứng dụng bằng Smartphone một cách dễ dàng.
Xây dựng thư viện trong phạm vi hỗ trợ bốn ứng dụng quản lý tour, quản lý lớp học, hỗ trợ quản lý cuộc họp và hỗ trợ thông tin sự cố với các chức năng trong bảng sau:
Quản lý các chức năng liên quan đến GPS
STT Chức năng Ghi chú
1 Tìm vị trí của người dung
2 Tìm vị trí của nhiều địa điểm mà người dùng muốn biết
3 Tìm vị trí của những người dùng gần nhất 4 Tìm đường đi giữa hai điểm
Quản lý danh sách các yêu cầu gửi lên máy chủ của các ứng dụng
STT Chức năng Ghi chú
1 Các yêu cầu bằng tệp tin XML 2 Các yêu cầu bằng tệp tin JSON
Quản lý các thông báo từ máy chủ của các ứng dụng hay người dùng
STT Chức năng Ghi chú
1 Thông báo về thời gian 2 Thông báo về vị trí 3 Thông báo về thiên tai
Quản lý các kết nối mạng Internet của người dùng
STT Chức năng Ghi chú
1 Kết nối bằng WiFi 2 Kết nối bằng GPS 3 Kết nối bằng 3G
Quản lý các tin nhắn nhắc nhở từ máy chủ của các ứng dụng
STT Chức năng Ghi chú
1 Nhắc nhở bằng cách thiết lập âm thanh 2 Nhắc nhở bằng cách thiết lập độ rung 3 Nhắc nhở bằng cách thiết lập đèn flash
4 Nhắc nhở bằng cách hiển thị thông báo trên thanh trạng thái của Smartphone
Quản lý tài khoản
STT Chức năng Ghi chú
1 Tạo tài khoản mới
2 Chỉnh sửa thông tin của tài khoản 3 Xóa thông tin của một tài khoản 4 Xem thông tin của tài khoản 5 Xác nhận thông tin của tài khoản 6 Phân quyền cho tài khoản
Hỗ trợ xây dựng phòng chat
STT Chức năng Ghi chú
1 Tạo phòng 2 Rời khỏi phòng 3 Xóa phòng
4 Tham gia vào phòng 5 Gửi tin nhắn
6 Gửi tin nhắn bí mật
7 Lấy danh sách những người dùng online 8 Lấy tên của người dùng offine
9 Lấy tên của người dùng online 10 Lấy những tin nhắn lỗi
Xây dựng ứng dụng trên Android cho người dùng sử dụng với các chức năng trong bảng sau:
STT Chức năng Ghi chú
1 Quản lý các chức năng liên quan đến bản đồ
2 Quản lý danh sách các yêu cầu gửi lên máy chủ của các ứng dụng 3 Quản lý các kết nối mạng Internet của người dung
4 Quản lý các tin nhắn nhắc nhở từ máy chủ của các ứng dụng 5 Quản lý tài khoản
6 Quản lý các thông báo từ máy chủ của các ứng dụng hay người dùng 7 Hỗ trợ xây dựng phòng chat
CHƢƠNG 3
TRIỂN KHAI CHƢƠNG TRÌNH
3.1 Cách sử dụng thƣ viện trong Android
Đưa thư viện vào eclipse như một đồ án bình thường
Sau đó đưa vào bất cứ ứng dụng nào bạn muốn bằng cách:
Nhấn chuột phải -> Properties -> Android -> Add -> Chọn Library
Xuất thư viện ra dưới dạng một gói.jar
- Chọn Library -> Nhấn chuột phải -> Export -> Java -> JAR File, chọn các thư mục cần thiết và đường dẫn
Tiếp tục bấm Next -> Next -> Finish -> Gói library.jar -> Đưa vào trong ứng dụng.
Cách sử dụng các chức năng trong thư viện Thư viện được xây dựng thành ba gói chính:
Android.lib.internal: các lớp chứa các hàm chung dùng cho các chức năng khi xây dựng cấu trúc
Android.lib.object: lớp chứa các đối tượng tự định nghĩa để sử dụng cho chức năng
Android.lib.product: lớp chứa các hàm được người lập trình gọi để sử dụng các chức năng, tùy vào mỗi chức năng, nó sẽ có tên đại diện chức năng
Nếu người dùng muốn dùng bất kỳ chức năng gì thì họ có thể vào gói android.lib.product để tìm các hàm.
3.2 Triển khai chƣơng trình
Đối với chức năng liên quan đến Google Map, người dùng có thể thấy vị trí của bản thân hay người khác muốn tìm đường đi đến địa điểm nào đó trên Google Map.
Họ có thể dùng chức năng tìm đường trong thư viện. Ở đây, họ có thể chọn theo đường bộ hay đường xe chạy. Chương trình sẽ tự động vẽ đường giữa hai điểm đã chọn
Hình 18 – Vẽ đƣờng đi giữa hai vị trí
Người dùng có thể quan sát vị trí của những người dùng ứng dụng khác trong một phạm vi nhất định với các loại bản đồ khác nhau. Tùy vào quyền đã được phân cho mỗi người dùng của mỗi ứng dụng mà có thể hiển thị trên bản đồ khác nhau.
Hình 20 – Hiển thị các vị trí gần nhất so với một địa điểm
Ngoài ra, ta có thêm một số chức năng như:
Đối với chức năng Reminder, người dùng có thể thiết lập thời gian để thông báo, họ có thể chọn chức năng kèm theo như nhắc nhở bằng đèn flash, độ rung, âm thanh hay gửi tin nhắn
Hình 22 – Nhắc nhở bằng cách thiết lập chế độ rung
Đối với chức năng hỗ trợ xây dựng phòng chat thì người dùng phải cung cấp một id chung để có thể tham gia nói chuyện, bàn bạc.
KẾT LUẬN
a. Đánh giá kết quả
Với việc sử dụng nền tảng Android, người dùng có thể sử dụng thư viện để hỗ trợ cho việc lập trình Android, giúp việc xây dựng code trong các ứng dụng có hệ thống hơn.
Về mặt kỹ thuật ứng dụng đã được xây dựng thành công với việc sử dụng các công nghệ XML, JSON, GPS, GOOGLE MAP API, NODEJS, SOCKET.IO.
Ƣu điểm
Các chức năng được xây dựng dễ sử dụng, hỗ trợ linh hoạt cho người lập trình
Các chức năng cơ bản đã hoàn thiện