1. Trang chủ >
  2. Luận Văn - Báo Cáo >
  3. Công nghệ thông tin >

Bluetooth Device Selection UI.

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.77 MB, 253 trang )


3. Đăng kí dịch vụ vào BMS server. TRequestStatus status;
secmanSubSession.RegisterServicesecSettings,status; User::WaitForRequeststatus;

7.8. Bluetooth Device Selection UI.


Khi có nhiều thiết bị Bluetooth phù hợp tìm kiếm được xung quanh, ứng dụng cần phải hiển thị chúng tới người dùng và để người dùng chọn thiết bị
thích hợp để thực hiện kết nối. Symbian cung cấp một chức năng cho phép thực hiện tìm kiếm các thiết bị Bluetooth và hiển thị chúng cho người dùng. Việc
này được thực hiện thông qua lớp RNotifier. Lớp này được định nghĩa trong
file header “e32std.h”.
Lớp TBTDeviceSelectionParams cho phép một ứng dụng truyền vào các tham
số khởi tạo cho quá trình chọn lựa class TBTDeviceSelectionParams
{ public:
IMPORT_C TBTDeviceSelectionParams; IMPORT_C void SetUUIDconst TUUID aUUID;
IMPORT_C void SetDeviceClass TBTDeviceClass
aClass; IMPORT_C const TUUID UUID;
IMPORT_C TBTDeviceClass DeviceClass; IMPORT_C TBool IsValidDeviceClass;
IMPORT_C TBool IsValidUUID; ...
};
Bằng cách dùng hàm SetDeviceClass , ứng dụng có thể giới hạn số
lượng những thiết bị cần tìm kiếm.
Đào Quý Thái An – Trần Thị Mỹ Hạnh 198
Ứng dụng cũng có thể xác định các UUID của dịch vụ mà nó cần tìm. Điều này sẽ làm cho quá trình tìm kiếm chỉ tìm kiếm những thiết bị có hỗ trợ
dịch vụ mà ứng dụng yêu cầu. Việc này thực hiện thơng qua hàm SetUUID. Để tìm kiếm tất cả các thiết bị, ứng dụng nên để đối tượng
TBTDeviceSelectionParams ở giá trị mặc định.
Sau khi người dùng chọn thiết bị muốn giao tiếp, thông tin về thiết bị mà người dùng lựa chọn sẽ được trả về cho ứng dụng thông qua đối tượng của lớp
TBTDeviceResponseParams. Lớp này được định nghĩa trong file header
“btextnotifiers.h” . Định nghĩa của nó như sau: class TBTDeviceResponseParams
{ public:
IMPORT_C TBTDeviceResponseParams; IMPORT_C void SetDeviceAddress
const TBTDevAddr aBDAddr; IMPORT_C void SetDeviceName
const TDesC aName; IMPORT_C void SetDeviceClass
TBTDeviceClass aClass;
IMPORT_C const TBTDevAddr BDAddr const; IMPORT_C const TDesC DeviceName const;
IMPORT_C TBTDeviceClass DeviceClass; IMPORT_C TBool IsValidBDAddr const;
IMPORT_C TBool IsValidDeviceName const; IMPORT_C TBool IsValidDeviceClass;
... };
Hàm IsValidxxxx được dùng để bảo đảm rằng các thông tin liên quan đã được thiết lập trong lớp. Ví dụ, nếu hàm IsValidDBAddr trả về giá trị true,
ứng dụng biết được rằng địa chỉ của thiết bị Bluetooth đã được thiết lập trong
lớp TBTDeviceResponseParams. Nếu hàm này trả về giá trị false có nghĩa là
Đào Quý Thái An – Trần Thị Mỹ Hạnh 199
chưa có dữ liệu về địa chỉ thiết bị Bluetooth trong lớp này. Ứng dụng có thể nhận được địa chỉ thiết bị thông qua hàm BDAddr và tên của thiết bị thông
qua hàm DeviceName. Symbian cung cấp một tập các gói dữ liệu đóng gói các lớp vừa trình
bày bên trên:
TBTDeviceSelectionParamsPckg TBTDeviceResponseParamsPckg
Nói tóm lại, quy trình để thực hiện tìm kiếm thiết bị được mô tả như sau:
Kết nối vào server trước khi có thể sử dụng RNotifier not;
User::LeaveIfErrornot.Connect; TBTDeviceSelectionParamsPckg selectionFilter;
Thực hiện tìm kiếm và hiển thị cho người dùng not.StartNotifierAndGetResponse
status, KDeviceSelectionNotifierUid,
selectionFilter, aResponse
;
Đợi người dùng chọn thiết bị cần giao tiếp User::WaitForRequeststatus;
if status.Int == KErrNone {
if aResponse.IsValidDeviceName {
success = ETrue; }
else {
iReporter.Error_LFailed to connect; }
Đào Quý Thái An – Trần Thị Mỹ Hạnh 200
} else
{ iReporter.Error_LNo device selected;
} not.CancelNotifierKDeviceSelectionNotifierUid;
not.Close; return success;

7.9. Xây dựng ứng dụng Bluetooth trên Symbian OS với Series 60 SDK


Xem Thêm
Tải bản đầy đủ (.pdf) (253 trang)

×