Các Phonegap API

Một phần của tài liệu Nghiên cứu và ứng dụng framework phát triển ứng dụng đa nền tảng vào thi trắc nghiệm trực tuyến (Trang 38 - 41)

- Các thao tác cơ bản 3

1.3.3 Các Phonegap API

Danh sách các Phonegap API hỗ trợ cho thiết bị di động đƣợc liệt kê trong bảng I.2.4.

Bảng 1.4 Danh sách các Phonegap API hỗ trợ cho các thiết bị di động

Ở đây đồ án không có tham vọng đề cập hết tất cả mà chỉ đề cập đến một số API sử dụng trong ứng dụng Clicker thi trắc nghiệm trực tuyến để lấy thông tin từ thiết bị, kiểm tra kết nối network và các thông báo notification.

- Cách lấy thông tin từ thiết bị di động

Phonegap có một đối tƣợng runtime đƣợc gọi là đối tƣợng thiết bị device để lƣu trữ các thông tin cần thiết của thiết bị. Để lấy về đối tƣợng device của phonegap chúng ta làm nhƣ sau:

Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 39

//Lấy về đối tượng phonegap

public static PhoneGap phoneGap = GWT.create(PhoneGap.class); //Lấy về đối tượng device

public static Device mydevice = phoneGap.getDevice();

Đối tƣợng Device cho phép ứng dụng truy cập tới một số thông tin về ứng dụng và thiết bị chạy trong một ứng dụng phonegap. Sau đây là một số thuộc tính của đối tƣợng Device:

 device.name: Trả về tên đƣợc gắn với thiết bị. Tên này có thể đƣợc đăng ký bởi nhà sản xuất thiết bị hoặc cũng có thể bởi ngƣời dùng thiết bị tùy thuộc vào loại hệ điều hành di động.

 device.phonegap: Trả về phiên bản của phonegap framework đƣợc dùng để xây dựng ứng dụng.

 device.platform: Hầu hết các hệ điều hành đều hỗ trợ tính năng này và trả về hệ điều hành của thiết bị mà ứng dụng đang chạy.

device.uuid: Trả về định danh id duy nhất của thiết bị.

 device.version: Trả về phiên bản của hệ điều hành chạy trên thiết bị di động.

Cách lấy về ID quốc tế của thiết bị UUID

Mỗi thiết bị đều phải có số UUID bởi nhà sản xuất thiết bị khi thiết bị đƣợc sản xuất và không thể thay đổi, nó là duy nhất. UUID có thể có chiều dài khác nhau phụ thuộc vào thiết bị, nó luôn đƣợc định nghĩa theo một model từng platform. Với Android, nó là một số ngẫu nhiêu kiểu int-64 bit đƣợc tự sinh khi boot lần đầu trên thiết bị. Với BlackBerry, nó là số mã pin với 9 kí tự kiểu int. Với iPhone, sử dụng một chuỗi ký tự string là giá trị của hàm băm đƣợc tạo ra từ nhận diện nhiều phần cứng, nó đảm bảo là duy nhất với mỗi phần cứng và không thể đƣợc gắn với tài khoản ngƣời dùng. Với Windows Phone7, nó trả về giá trị hàm băm của thiết bị + ngƣời dùng hiện tại nếu ngƣời dùng chƣa đƣợc định nghĩa, một guid đƣợc tạo ra và sẽ tồn tại cho đến khi ứng dụng đƣợc gỡ cài đặt.

Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 40

(http://www.phonegapcn.com/docs/zh/1.4.1/phonegap_device_device.md.html ) Ta sử dụng device.uuid nhƣ sau:

//Lấy về UUID của thiết bị

String deviceID = phoneGap.getDevice().getUuid(); Thuộc tính này chỉ hỗ trợ cho các hệ điều hành:  Android

 BlackBerry

 BlackBerry WebWorks (OS 5.0 và cao hơn).  iPhone

 Windows Phone 7(Mango) - Kiểm tra mạng kết nối thiết bị

Khi bắt đầu làm việc với thiết bị di động chúng ta cần kiểm tra kết nối mạng vì tín hiệu kết nối có thể rất yếu, không ổn định hoặc không tồn tại. Phonegap API có chứa đối tƣợng Connection object cho phép ta truy cập vào thông tin kết nối của thiết bị. Để xác định dạng của kết nối mạng hiện thời mà ứng dụng đang sử dụng chúng ta có thuộc tính connection.type, nó có thể có các giá trị sau:

 Connection.CELL_2G  Connection.CELL_3G  Connection.CELL_4G  Connection.ETHERNET  Connection.NONE  Connection.UNKNOWN  Connection.WIFI

Điện thoại smartphone hiện đại thƣờng có nhiều sóng kết nối, vì vậy các thiết bị có thể kết nối đến nhiều kiểu mạng trong suốt cả ngày. Khi dữ liệu đƣợc truyền đến

Học viên: Lê Thị Hoàng Anh _ Lớp 13B CNTT1 41

một trong các loại kết nối này sẽ đƣợc sử dụng, thông thƣờng thiết bị sẽ ƣu tiên sử dụng loại kết nối nhanh nhất và đắt tiền nhất nếu có thể. Do có sự ƣu tiên này nên ta phải xác định đƣợc loại kết nối để chọn loại phù hợp với nhu cầu ngƣời dùng trƣớc khi tải dữ liệu…

Với ứng dụng thi trắc nghiệm trực tuyến của đồ án (Clicker) ta dùng để kiểm tra tính online nhƣ sau:

public static boolean isOnline(boolean mustOnline) {

boolean isOnline Clicker.phoneGap.getConnection().getType()!= Connection.NONE;

if (MGWT.getOsDetection().isIOs())

isOnline &= Clicker.phoneGap.getConnection().getType()!= Connection.UNKNOWN;

if (!isOnline && mustOnline)

Toaster.showToast(Locale.get().sorryOfflineMode(), Toaster.bot); return isOnline;

}

Chúng ta sử dụng connection.type lấy về dạng mạng network kết nối bằng cách gọi phoneGap.getConnection().getType(). Ở đây ta nói thêm về hai trƣờng hợp giá trị trả về là Connection.NONE và Connection.UNKNOWN. Connection.NONE có nghĩa là mạng network không sẵn sàng không có kết nối do vậy nó ở chế độ offline và Connection.UNKNOWN cũng có nghĩa nó ở chế độ offline nhƣng nó có thể có trƣờng hợp có kết nối nhƣng không truy cập đƣợc.

Một phần của tài liệu Nghiên cứu và ứng dụng framework phát triển ứng dụng đa nền tảng vào thi trắc nghiệm trực tuyến (Trang 38 - 41)