Tải bản đầy đủ
XÂY DỰNG CHƯƠNG TRÌNH CHIA SẺ TÀI LIỆU TRÊN ANDROID

XÂY DỰNG CHƯƠNG TRÌNH CHIA SẺ TÀI LIỆU TRÊN ANDROID

Tải bản đầy đủ

nhập thành công hay chưa. Sau khi đăng nhập thành công người sử dụng có thể
thực hiện các chức năng sau.
a) Chức năng lưu trữ
-

Phân tích file tài liệu thành nội dung XML dựa vào kỹ thuật Xstrem.
Xstream có khả năng phân tích dữ liệu và lưu trữ trong thẻ

-

Kết nối tới webservice và gửi nội dung XML kèm theo các thông tin
tài khoản người dùng cần thiết.

-

Webservice thực hiện việc tạo lại file và lưu file.

Webservice trả về thông điệp báo cáo đã lưu hoặc thông báo nếu không

thực hiện lưu thành công.

XStream
SOAP, XML
Message

Hình 3.1: Minh họa chức năng upLoad tài liệu
b) Chức năng Download tài liệu
Cho phép người sử dụng tải về các tài liệu đã Upload trước đó. Ở chức
năng Upload và Download các tài liệu được phân biệt bởi tên tài liệu.

Hình 3.2: Chức năng Download tài liệu

53

-

Ứng dụng giử thông tin tên tài liệu, tên user để tải được tài liệu tương

-

ứng về máy.
Từ tên người sử dụng và tên file , phía Service tìm và phân tích file

-

thành nội dung XML trả lại cho client.
Client nhận nội dung XML và tiến hành phân tích ngược thành tài liệu

và lưu vào máy.
c) Chức năng chia sẻ tài liệu
- Người sử dụng giử yêu cầu tới Service tên file và thông tin người
-

dùng.
Tại Service sẽ tiến hành lấy đường dẫn vật lý của file tiến hành mã hóa
nhằm mục đích che dấu đường dẫn thực rồi trả xâu này lại cho Client.
Tại Client có ba phương thức chia sẻ tài liệu
+ Chia sẻ qua SMS
+ Chia sẻ qua Email
+ Chia sẻ qua List Friend
Tại chức năng chia sẻ qua SMS và Email thì chuỗi mà server trả về là

đường dẫn đã được mã hóa, bên nhận sẽ dùng chuỗi này thực hiện download tài
liệu tại một web client. Web client được viết để kết nối, gọi các phương thức trên
server.
Tại chức năng chia sẻ qua List Friend thì chuỗi Server là đường dẫn trực
tiếp không cần mã hóa. Chuỗi này được ẩn và người nhận sẽ tiến hành lấy chuỗi
thực hiện chức năng Reciept từ người giử.
3.1.2. Chức năng quản lý người dùng
Giống như các hệ thống quản lý người sử dụng khác. Hệ thống này cũng
có các chức năng quản lý và cho phép người dùng tăng mức độ bảo mật của cá
nhân mình. Bao gồm các chức năng chính sau.
Đầu tiên là chức năng cho phép người dùng khởi tạo tài khoản mới của họ
trên Server. Thông tin cần thiết để lưu trữ đã được nêu ở bên trên. Sau đó thiết
lập các chức năng.

• Chức năng Login:

54

Chức năng login không phải được thiết kế để bảo vệ hệ thống mà chủ yếu là sử
dụng để quản lý người dùng và dữ liệu người dùng trên server. Khi người dùng
login thì username and password sẽ được lưu lại để làm chìa khoá liên lạc với
server, đảm bảo rằng dữ liệu được an toàn và dễ dàng truy xuất. Hay nói cách
khác mỗi username là một định danh giúp server quản lý được dữ liệu của họ.
• Chức năng đổi mật khẩu và email
Chức năng này giúp người dùng quản lý an toàn hơn tài khoản của họ. Để sử
dụng được chức năng này bắt buộc người dùng phải đăng nhập vào tài khoản cũ.
Sau người dùng chọn passowrd mới thì ứng dụng sẽ gửi password mới và các
thông tin người dùng lên web service và web service sẽ thực hiện việc thay đổi
password. Chức năng thay đổi email cũng tương tự.
Khởi tạo tài khoản mới
Cho phép người sử dụng hệ thống có thể khởi tạo tài khoản mới để tương
tác với các thành phần hệ thống. Thông tin để khởi tạo tài khoản bao gồm
-

Username: Tên đăng nhập hệ thống
Password: Mật mã đang nhập hệ thống
Confirm Password: Nhập lại mật mã
Email: Email của người sử dụng
Toàn bộ các xử lý cho quá trình nhập dữ liệu được thực hiện tại thiết bị

của người sử dụng. Sau khi nhập xong thông tin được truyền vào file XML và
gửi lên Server, tại đó thông tin sẽ được kiểm tra tính trùng lặp, tính chính xác,…
và gửi lại các thông báo cần thiết cho người sử dụng.

a) Khôi phục tài khoản

55

Hình 3.3: Chức năng Khôi phục tài khoản
Khi quên username hoặc password thì người dùng có thể sử dụng chức
năng này để khôi phục lại tài khoản của họ. Ứng dụng sẽ bắt buộc người dùng
phải nhập một email dự phòng trong khi tạo tài khoản để ứng dụng có thể gửi tài
khoản của họ vào email đó.
3.2. Chương trình ứng dụng phía Service
Ứng đụng được thiết kế chia thành hai mảng chính thực hiện tất cả các
chức năng đã được mô tả ở bên trên. Phía Client đại diện cho thiết bị cầm tay của
người dùng, phía Service đại diện cho các dịch vụ mà web cung cấp.
Service chịu tránh nhiệm xử lý các yêu cầu của người dùng, xác nhận các
phiên người dùng truy cập. Service được phát triển trên nền của Microsof.Net, sử
dụng ASP.NET ngôn ngữ phát triển là C#, cơ sở dữ liệu SQL server.
Quá trình kết nối sử dụng SOAP truyền nhận dữ liệu thông qua giao thức
HTTP. Địa chỉ Server là 10.0.0.2 với cổng 1234

Cơ sở dữ liệu cho Server chỉ bao gồm một bảng Users.

56

Chi tiết bảng như sau:
Khóa
Tên cột
Primary USERNAME
EMAIL
PASSWORD
RECEIPT

Kiểu dữ liệu
nvarchar(50)
nvarchar(50)
nvarchar(50)
Nvarchar(Max)

Mô tả
Định danh duy nhất một User
Dùng để đăng nhập hệ thống
Email của User
Mật khẩu đăng nhập hệ thống
Lưu trữ đường dẫn từ người
dùng khác chia sẻ

Sau khi xây dựng cơ sở dữ liệu tại Server tiến hành xây dựng các Class
các hàm xử lý dữ liệu cần thiết cho ứng dụng.
Class Conector dùng để kết nối tới cơ sở dữ
liệu của Service.
Giao thức getConnecttion() khởi tạo kết
nối tới cơ sở dữ liệu
Tất cả các file mà người dùng upload
lên server sẽ được lưu vào thư mục
~/data/tên user/
Mỗi User sẽ có một thư mục riêng để lưu tài liệu của mình.

3.3. Chương trình ứng dụng phía Client
Phần quan trọng nhất của ứng dụng, chạy trên thiết bị của người sử dụng.
Các chức năng Upload, Download, xóa,Share , hiển thị đồng bộ với Server.
Ngoài ra còn có các chức năng được mô tả ở trên. Để xây dựng các chức năng đã
được mô tả ở trên cần tiến hành các bước sau.

57

Thiết kế giao diện người dùng với các màn hình thể hiện đầy đủ các chức
năng, không dư thừa dữ liệu hoặc quá lòe loẹt. Sau đó xây dựng các Class
Activity liên kết giữa các màn hình giao diện với chương trình và cũng liên kết
với các Activity khác.

Hình 3.4: Biểu đồ Class giữa các thành phần giao diện

Class MyActivity định danh các phương thức, các xử lý, trình bày sử dụng cho
chương trình. Các Class khác là con của MyActivity. Mục đích xây dựng giúp
nhóm chức năng lại tránh việc khởi tạo hoặc định nghĩa các chức năng các hiển
thị sử dụng ở nhiều class khác nhau.

Ví dụ:
public ProgressDialog showProgressDialog(String msg, boolean
cancelable)
{
ProgressDialog pd = new ProgressDialog(this);
58

if (msg != null)
pd.setMessage(msg);
pd.setIcon(R.drawable.process_icon);
pd.setCancelable(cancelable);
pd.show();
return pd;
}
Hàm này sẽ được sử dụng trong tất cả các Activity, khi được gọi hiển thị
một cửa sổ xử lý (process Dialog).
Class MainActivity hiển thị màn hình chương trình bao gồm Form đăng
nhập, đăng ký, recover mật khẩu.
Class UploadActivity hiển thị và xử lý giao diện Upload file. Class Myfile
hiển thị list các file của user. List này được lấy từ Server và hiển thị trên màn
hình điện thoại. Class Share hiển thị giao diện share file và thực hiện các chức
năng share của chương trình.
3.4. Biểu đồ các lớp quan trọng
Class MyFile
Class xử lý lấy thông tin list file từ server hiển thị lên màn hình điện thoại.
Với các đối tượng trên List này người sử dụng có thể tích chọn gọi các hàm
download, upload, share. Tại class này còn có các Button tùy chọn cho người sử
dụng gồm có “back” để quay lại màn hình đăng nhập. Button change password,
change email, delete file. Các phương thức thực hiện trong Class này gồm:
public boolean MenuChoice(MenuItem item) { }
Override lại menu gắn vào button.
public void refreshList()
Thiết lập giao diện, đồng bộ hóa với Server
Một số phương thức quan trọng khác trong Class:
public void download()
public void ufload()
public boolean changepass()
public boolean changeemail()
59

Một số phương thức xử lý dữ liệu và hiển thị
Class Webservice
Class bao gồm các phương thức Static thực hiện liên lạc với webservice.
Nó gồm các phương thức kết nối, giử, nhận dữ liệu. Cấu trúc Class như sau:
Web Service
-

Upload()
Download
recoverPass()
getFilePath()
deleteFile()
login()
createAcc()
ChangePass()
ChangeEmail()

60





Upload file
Download file
Lấy lại mật khẩu của tài
khoàn



Lấy đường dẫn các file tài
liệu


Phương thức

Xóa file khi người dùng
yêu cầu






Xác thực quá trình login
Khởi tạo Accout mới
Đổi password
Thay đổi Email

Hình 3.5: Class Webservice
Tất cả quá trình kết nối thực hiện theo mô hình chung sau
Khai báo các tham số kết nối

//Địa chỉ phân giải
String SOAP_ACTION = "http://tempuri.org/sendEmail";
//Tham chiếu tới hàm “sendEmail” trên Server
String METHOD_NAME = "sendEmail";
//Name Space
String NAMESPACE = "http://tempuri.org/";
//Địa chỉ IP của webservice
String URL = "http://10.0.2.2:123/DataStore.asmx?op=sendEmail";
Đính kèm các thuộc tính sẽ gửi đi
//Khởi tạo đối tượng Soap

61

SoapObject request = new SoapObject(NAMESPACE,
METHOD_NAME);
//Đính kèm giá trị
request.addProperty("from", "long.ictu@gmail.com");
request.addProperty("to", to);
Chú ý giá trị đính kèm có định danh (“from” và “to”) trùng với tham số truyền
vào của webMethod trên server
Nhận giá trị trả về từ Service
// Đối tượng gửi và nhận
SoapSerializationEnvelope envelope = new
SoapSerializationEnvelope(SoapEnvelope.VER11);
// Khai báo Server sử dụng .Net
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
AndroidHttpTransport androidHttpTransport = new
AndroidHttpTransport(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
//Nhận giá trị trả về
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
return result.toString();
3.5. DEMO ứng dụng
Dưới đây là danh sách các cửa sổ của ứng dụng và mối liên hệ giữa các
thànhphần đó. Bao gồm các màn hình và các cửa sổ Dialog thông báo, cảnh báo,

Màn hình Login

Dialog tạo tài khoản mới Màn hình danh sách các File tài liệu của UserDialog khôi phục tài khoản

Màn hình share tài liệu

Màn hình Upload tài liệu

Dialog confirm delete

62
Dialog change password

Màn hình menu chọn các action khác

Dialog change email

Hình 3.6: Danh sách liên kết các màn hình mức 1 và 2

Dưới đây là danh sách các màn hình liên kết mức 3

Màn hình chi tiết File đã Upload

Màn hình chọn file Upload

Hình 3.7: Các màn hình mức 3
Màn hình danh sách file

Màn hình share tài liệu

Một số hình ảnh demo ứng dụng

Hình 3.8: Đăng nhập

63