CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG TẢI ẢNH MPU(Mobile Photo Uploader)
3.2 CÁC GIAO DIỆN
3.2.1 Nhìn chung về ứng dụng
MPU trợ giúp các hệ điều hành và thiết bị dưới đây:
Android
• Hệ điều hành được trợ giúp ♦ Phiên bản hệ điều hành 1.0 • Độ phân giải được trợ giúp
♦ Điện thoại di động G1 của Google: 480x320(HVGA) ảnh chân dung, ảnh phong cảnh.
Định dạng hình ảnh được trợ giúp: • Jpeg
• Bmp • Gif • Png
• Cỡ file được trợ giúp • Nhỏ hơn 3Mb
Cỡ của ứng dụng: dưới 1MB
Công nghệ và các phương thức sử dụng
Xu hướng truy nhập vào Photoshow.com hiện nay là bằng cách dùng một giao thức sử dụng XML qua HTTP(xml>/HTTP). Yêu cầu được tạo ra theo lời gọi HTTP POST. Đoạn code XML đó có dạng:
<?xml version=”1.0” encoding=”utf-8”> <service name=”serviceName”> <params> … </params> </service>
Nội dung trong phần params là thành phần tên của các tham số. Nếu thành công thì câu trả lời có dạng:
<?xml version=”1.0” encoding=”utf-8”> <response name=”serviceName”> <value> … </value> </response>
Phần value chứa những giá trị được trả ra, nếu không trả lại gì(void returns) thì sẽ được lưu trong thành phần giá trị rỗng (empty). Nếu có lỗi xảy ra thì sẽ trả ra mẫu sau:
<?xml version=”1.0” encoding=”utf-8”> <response name=”serviceName”>
<fault>MPSN_FAULT_XXXX</fault> <service>
Chỗ MPSN_FAULT_XXXX là chuỗi chỉ ra loại của lỗi, ví dụ:
MPSN_FAULT_NO_LOGIN chỉ ra rằng một cái gì đó vừa được tạo ra để log in vào một tài khoản mà không tồn tại.
Để truy cập vào services trong Photoshow.com, hệ thống client phải thành lập một session. Sau đó server sẽ trả ra một sessionKey, sessionKey sẽ được dùng cho những lần truy cập tiếp theo. Sau đây là các bước tuần tự:
1. Photoshow.com:: getSession
2. Khi ứng dựng đã lập được một Session nó có thể gọi login để xác định một người dùng cụ thể và liên kết người dùng đó với session. Login cũng trả ra chi tiết về người dùng, chi tiết này có thể được dùng cho lần tiếp theo
3. Để nhận một danh sách PhotoShow cho người sử dụng, ứng dụng client phải gọi loadCompositeChannel trong gói “uci”(unique channel identifier). Điều này căn cứ vào tên màn hình của người dùng lấy được từ việc gọi login.
4. Người sử dụng có thể chọn từ danh sách các Photoshow mà họ có trên mạng.
5. Khi đã chọn được một PhotoShow ứng dụng lấy lại vị trí của upload server host đưa ra thông tin của Show, rồi đến các photo riêng lẻ.
6. Cuối cùng ứng dụng kết thúc một session bằng cách gọi endSession
Phương thức getSession EndPoint:
http://www.photoshow.com/MPSNAppServer/services/session
Sau đó, ứng dụng client sẽ dùng lệnh sau để getSession:
<?xml version="1.0" encoding="utf-8"?> <service name="getSession"> <params> <licenseKey>KEY-PSC-ONLINE-PHP</licenseKey> <source> <product>api_demo</product> <version>1.0.0</version> <brandLocale> <brand>roxio</brand> <locale>en_US</locale> </brandLocale> <build>1</build> <platform>mobile</platform> <level>free</level> <redirSource>sonic_development</redirSource> </source> </params> </service>
Kết quả sẽ trả ra như sau:
<?xml version="1.0" encoding="utf-8"?> <response name="getSession"> <value> <session> <sessionKey>abdef…</sessionKey> … </session> </value> </response>
Session key là một chuỗi đã được trích và được đưa vào lần gọi tiếp theo.
Phương thức Login:
Sử dụng session key đã lấy được từ phương thức getSession:
<?xml version="1.0" encoding="utf-8"?> <service name="login"> <params> <sessionKey>from getSession</sessionKey> <username>nick_twyman@conky.com</ username > <password>password</password> </params> </service> Kết quả trả ra là: <?xml version="1.0" encoding="utf-8"?> <response name="login"> <value> <user> <scrnName>nick</scrnName> … </user> </value> </response>
scrnName là tên duy nhất cho người dùng, được dùng để mặc định kênh của họ trên web và được dùng trên URLs cho quá trình online của họ. Nó sẽ được trích ra và được lưu lại
Phương thức endSession Endpoint:
http://www.photoshow.com/MPSNAppServer/services/session
Nếu ứng dụng không dùng lại session, nó sẽ kết thúc session bất cứ khi nào có thể. Điều này được làm bởi một lời gọi tới endSession.
<?xml version="1.0" encoding="utf-8"?> <service name="getSession"> <params> <sessionKey>from getSession</sessionKey> </params> </service> Kết quả sẽ trả ra: <?xml version="1.0" encoding="utf-8"?> <response name="getSession"> <value/> </response>
(Trích: PhotoShow Integration-Sonic Solutions) 3.2.2 Luồng chương trình và những đặc trưng
MPU được dùng để tải những bức ảnh đã được chọn trong điện thoại lên website photoshow.com
MPU liên kết với website photoshow.com bằng dịch vụ web API • Luồng chương trình
Login Main Sharring
Setting Photo Library Tải ảnh Chọn ảnh Xác nhận lại ảnh đã chọn Chọn ảnh Hình 3.1 Thoát
Biểu đồ chức năng ( Functional Diagram):
Sơ đồ liên kết các màn hình
Hệ thống upload ảnh
Login Liệt kê danh sách ảnh Tải ảnh lên mạng
3.2.2.1 Login
Người dùng phải cung cấp các thông tin về email và mật khẩu, sau đó chương trình sẽ kiểm tra tính hợp lệ của các thông tin đó trước khi truy nhập vào website photoshow.com
3.2.2.2PhotoLibrary
MPU đưa ra đã được lưu trong thư mục nguồn
Thông tin của Photo trong thư viện ảnh có thể được cập nhật tự động hoặc do người dùng tự cập nhật.
Người sử dụng có thể chọn nhiều ảnh để tải cùng một lúc 3.2.2.3Chọn Album để tải vào
Người dùng chọn một trong các photoshow được liệt kê để đưa ảnh vào Màn hình Login Màn hình Main Màn hình ReadyToUpload Màn hình ChoosePhotoShow Màn hình PhotoLibrary Màn hình UploadPhoto Hình 3.3
3.2.2.4Tải ảnh và tải lại nếu có lỗi
Ứng dụng có thể tải nhiều ảnh vào website photoshow.com Nếu có lỗi, ứng dụng có thể tự động tải lại
3.2.2.5Quản lý dữ liệu thông minh
MPU trợ giúp chức năng mặc định dưới đây của điện thoại di động trong phần quản lý dữ liệu
• Tải lên mạng Wifi
o Tải lên mạng wifi và gọi điện chạy song song với nhau o Wifi là kết nối riêng cao hơn
• Chạy nhiều hơn 2 dữ liệu ứng dụng
o Khi dùng nhiều hơn 2 dữ liệu ứng dụng. Ví dụ như email,ứng dụng có thể chia sẻ băng thông
3.2.3 Các màn hình và chức năng chính 3.2.3.1Khởi động MPU
Hình 3.4
Hình 3.3: màn hình chính của G1: Đây là màn hình sẽ xuất hiện ngay khi khởi động thiết bị, màn hình có các chức năng chính là Dialer, Contacts, Browses và Maps và 1 đồng hồ hiển thị giờ hệ thống.
Hình 3.5
Hình 3.3: màn hình đầy đủ chức năng: đây là màn hình chứa đầy đủ các chức năng của G1. Mỗi khi một ứng dụng được tạo ra thì tên của nó sẽ được hiển thị trên màn hình này. Ở đây, ứng dụng MPU sẽ được đặt tên là Login.
3.2.3.2Màn hình Login
Chức năng chính: Đăng nhập vào ứng dụng
Sau khi chọn chức năng Login để vào ứng dụng thì chúng ta sẽ thấy xuất hiện màn hình Login, yêu cầu người dùng điền email và password để đăng nhập vào trang web photoshow.com ( email và password này phải được người dùng lập trước tại trang photoshow.com).
Hình 3.7
Nếu đăng nhập sai thì sẽ có một message thông báo là sai tên đăng nhập hoặc mật khẩu(Invalid Username or Password) và có 2 lựa chọn cho người sử dụng:
• Back to main menu: thoát khỏi ứng dụng,quay trở về màn hình chính
• Login again: đăng nhập lại Giải thích chức năng:
No Item name Type
Max
length Description
1 Email Textbox 40 Email của người dùng 2 Password Passwordbox 32 Mật khẩu của người dùng
3
Save
password Checkbox
N/A
Lưu password hoặc không
4 Exit Button N/A [Exit] button click: Tắt ứng dụng
5 Login Button N/A [Login] button click:
- Dữ liệu thông tin đã được xác nhận _ Nếu thông tin là đúng thì thì gửi yêu cầu tới web service.
6 Back to main menu
Button N/A _Khi người dùng đánh sai mật khẩu
thì có 1 thông báo với 2 lựa chọn • Quay ra màn hình chính 7 Login again Button N/A • Đăng nhập lại
Mô tả thuật toán chức năng đăng nhập: Bắt đầu Đăng nhập thành Sai Đúng Đúng Đăng nhập lại? Sai Thoát Hình 3.8 Username, password
3.2.3.3Màn hình Main
Sau khi đã đăng nhập được vào ứng dụng thì màn hình Main sẽ hiện ra mới các nội dung như trong hình 3.7:
Hình 3.9
Ở đây chỉ có phần PhotoLibrary là hoàn chỉnh còn 2 phần còn lại đang được xây dựng. Khi ở màn hình này, người dùng có 2 lựa chọn:
• Switch account: quay lại màn hình trước để đăng nhập lại với email và password khác
• Exit: thoát hẳn khỏi ứng dụng
Số thứ tự
Tên các thành
phần Kiểu Giải thích
2 Quick Sharing Button
3 Setting Button
4 Switch account Menu [Switch account] click - Quay lại màn hình login
5 Exit Menu [Exit] click: Thoát khỏi ứng dụng và
trở về màn hình chính của G1
Mô tả thuật toán vào thư viện ảnh;
3.2.3.4Màn hình PhotoLibrary
Đây là màn hình danh sách các ảnh có sẵn trong máy với thông tin về tên mỗi bức ảnh bên cạnh hình đã được thu nhỏ. Muốn chọn bức ảnh nào để tải thì người dùng sẽ phải bấm vào ô check bên cạnh mỗi ảnh để đánh dấu. Sau khi đã chọn xong, người dùng chọn Next để sang bước tiếp theo. Nếu không, người dùng có thể chọn Back để quay lại màn hình trước.
Vào chọn ảnh trong thư Sai Đúng Hình 3.10 Bắt đầu Kết thúc lựa chọn
Hiện giao diện PhotoLibrary
Hình 3.11 Giải thích chức năng: Số thứ tự Tên các thành phần Kiểu Giải thích 1 List Photo List (Custom
control) _Để chứa danh sách ảnh
2 Images Image
[Image 1] click:
_ Nếu tick tức là chọn bức ảnh đó để tải lên và ngược lại
3 Next
Menu
[Next] click: Sang màn hình
ReadyToUploadPhoto
4 Back Menu
[Back] click:
- Quay lại màn hình PhotoLibrary Mô tả thuật toán lựa chọn ảnh
3.2.2.5Màn hình ReadyToUploadPhoto
Đây là màn hình chữa những bức ảnh đã được tick từ màn hình trước. Màn hình này để kiểm tra xem người dùng đã chắc chắn chọn những bức ảnh này để tải lên mạng hay chưa, nếu chưa có thì có thể quay lại màn hình trước để chọn lại bằng cách chọn menu Back, còn nếu đã sẵn sàng thì chuyển sang bước tiếp theo bằng cách chọn Next.
Bắt đầu Kết thúc Đúng Hình 3.12 Đã chọn xong? Chọn ảnh Sai
Hình 3.13 Số thứ tự Tên các thành phần Kiểu Giải thích
1 Thumbnails Image Hiển thị ra 4 bức ảnh được chọn trên 1 hàng ngang
2 Next Menu [Next] click: Sang màn hình
ChoosePhotoShow
3 Back Menu [Back] click: Quay lại màn hình
Mô tả thuật toán xác nhận ảnh đã chọn:
3.2.2.6Màn hình ChoosePhotoShow
Màn hình này chứa danh sách các PhotoShow đã được lập từ trước của người dùng. Các photoshow đã được liệt kê theo tên. Bên cạnh tên mỗi photoshow là các option, muốn chọn photoshow nào người dùng chỉ việc tick vào option bên cạnh để chọn.
Xác nhận lại ảnh muốn Đúng Sai Kết thúc Hình 3.14 Bắt đầu
Hiện giao diện PhotoLibrary
Hình 3.15 Số thứ tự Tên các thành phần Kiểu Giải thích
1 Photoshows List item
Đây là danh sách các Album có sẵn đã được tạo trên trang Photoshow.com. Người dùng sẽ chọn 1 Album để đưa những bức ảnh đã chọn và bằng cách tích và option bên cạnh.
2 Upload Menu
[Upload] click: Sang màn hình
UploadPhoto để tải ảnh lên Photoshow.com
3 Back Menu
[Back] click: Quay lại màn hình
ReadyToUpload để xem lại các ảnh đã được chọn
Mô tả thuật toán chọn album ảnh: Sai Kết thúc lựa chọn Bắt đầu Hình 3.16 Lựa chọn album để tải ảnh vào Đồng ý tải vào album đã chọn? Đúng
3.2.2.7Màn hình UploadPhoto
Đây là bước cuối cùng của quá trình tải ảnh.
Màn hình khi đang upload: màn hình này hiện thị tên bức ảnh và số lượng ảnh đã tải được trên tổng số ảnh cần tải. Theo hình 3.15 dưới đây thì bức ảnh đang được tải là bức ảnh có tên cat_5.jpg, số lượng ảnh đã tải được là 1 ảnh trên tổng số ảnh cần tải là 3 ảnh.
Hình 3.17
Màn hình khi đã tải xong:
Màn hình ở hình 3.16 hiển thị trạng thái tải ảnh khi đã hoàn thành (upload finish). Đây là trường hợp tải ảnh thành công, nghĩa là ảnh đã xuất hiện trong album đã chọn trên trang web Photoshow.com
Tải ảnh bị lỗi
Màn hình ở hình 3.17 hiển thị trang thái tải ảnh bị lỗi, khi đó ảnh không được tải lên web. Nguyên nhân có thể do sự cố mạng chưa được kết nối, hoặc lỗi ở trang web tải lên(photoshow.com). Khi đó người sử dụng có 2 lựa chọn là tiếp tục tải (upload continue) hoặc thoát (Back to Login).
Hình 3.19 Số thứ tự Tên các thành phần Kiểu Giải thích
1 Tên của ảnh hiện
tại Label Tên của ảnh đang tải
bar
4 Message Label Hiện thị khi cần (Có lỗi, thành công) 5 Back to Login Menu Quay lại màn hình Login
6 Upload continue Menu Quay lại màn hình PhotoLibrary để tiếp tục chọn ảnh để tải Mô tả thuật toán tải ảnh:
Bắt đầu Tải ảnh Tiếp tục tải ảnh? Sai Đúng Kết thúc
Hiện giao diện PhotoLibrary
Hiện giao diện Login