1 / 25

sử dụng Bluetooth APIs

sử dụng Bluetooth APIs. Bluetooth là gì ?.

hasana
Download Presentation

sử dụng Bluetooth APIs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. sửdụngBluetooth APIs

  2. Bluetooth làgì? • Bluetooth cho phép một thiết bị trao đổi dữ liệu khôngdâyvới các thiết bị Bluetooth khác. Khung ứng dụng cung cấp truy cập các chức năng Bluetooth thông qua Bluetooth Android APIs. Các APIs chophép các ứng dụng kết nối không dây với các thiết bị Bluetooth khác, cho phépkếtnốikhôngdâytheophươngthứcpoint-to-point và multipoint.

  3. Đểtạomộtứngdụngbluetoothchúng ta cầnnhữnggì? Đểtạokếtnốibluetoothchúng ta sửdụnggóiandroid.bluetoothcósẵn. • android.bluetooth: Cung cấp các lớp quản lý chức năng Bluetooth, chẳng hạn như quét các thiết bịlâncậnđanghoạtđộng, kết nối với các thiết bị, và quản lý truyền dữ liệu giữa các thiết bị.

  4. Góiandroid.bluetoothgồmcáclớpnào? • BluetoothAdapter:cho phép bạn thực hiện các nhiệm vụ Bluetooth cơ bản, chẳng hạn như bắt đầu phát hiện ra thiết bị, truy vấn một danh sách các kho ngoại quan (ghép nối) các thiết bị, tạo một BluetoothDevice bằng cách sử dụng một địa chỉ MAC được biết đến, và tạo ra một BluetoothServerSocket để lắng nghe yêu cầu kết nối từ các thiết bị khác. • BluetoothDevice cho phép bạn tạo một kết nối với các thiết bị, truy vấn thông tin về nó, chẳng hạn như tên, địa chỉ, lớp học, và nhà nước liên kết.

  5. Góiandroid.bluetoothgồmcáclớpnào? • BluetoothServerSocketvàBluetoothSocket • Tạo một socket lắng nghe Bluetooth. • Làmộtinterfacecho Socket Bluetoothtương tự như TCP socketgồm:Socket và ServerSocket. Về phía máy chủ, sử dụng mộtBluetoothServerSocket để tạo ra mộtmáy chủ lắng nghe. Khi một kết nối được chấp nhận bởiBluetoothServerSocket, nó sẽ trả về mộtBluetoothSocketđể quản lý kết nối. Về phía máykhách, sử dụng một BluetoothSocket duy nhất cho cả hai bắt đầu một kết nối mớivà quản lý kết nối.

  6. Góiandroid.bluetoothgồmcáclớpnào? • BluetoothClass: Đểxácđịnhthiếtbịđượckếtnối. • VD: điệnthoại, máytính, tai nghe… • Ngoàiracòncónhiềulớpphụkhácnhư: BluetoothProfile, BluetoothHeadset, BluetoothA2dp, BluetoothHealth, BluetoothHealthCallback, BluetoothHealthAppConfiguration, BluetoothProfile.ServiceListener

  7. Cấpquyềnsửdụngbluetooth (Bluetooth Permissions) • Để sử dụng tính năng Bluetooth trong ứng dụng của bạn, bạn cần phải khai báo ít nhất một trong hai Bluetooth cho phép:BLUETOOTH và BLUETOOTH_ADMIN • Khaibáosửdụngbluetoothtrong file manifest.xmltrênứngdụngcủabạn:

  8. Thiếtlậpbluetooth • Trước khi ứng dụng của bạn có thể giao tiếp qua Bluetooth, bạn cần phải xác minh rằng Bluetooth được hỗ trợ trên thiết bị, và nếu như vậy, đảm bảo rằng nó được kích hoạt. • XácnhậncácBluetoothAdapter • getDefaultAdapter() trảvềmộtBluetoothAdapterđạidiệnchobộphát Bluetooth củathiếtbị. • Nếu getDefaultAdapter() trả về nulltứclàthiết bị không hỗ trợ Bluetooth.

  9. Thiếtlậpbluetooth • Kích hoạt tính năng Bluetooth: • isEnabled() kiểmtraxembluetoothcóđangđượcbậtkhông, nếulệnnàytrảvề false thìsẽyêucầuhệthốngkíchhoạtbluetooth qua lờigọistartActivityForResult() vớiACTION_REQUEST_ENABLE

  10. Cácbướcđểtạomộtứngdụngbluetoothhoạtđộngtrênthiếtbị android • Quétcácthiếtbịbluetoothđanghoạtđộng. • Truy vấn các bộ chuyển đổi Bluetooth cho các thiết bị Bluetooth kết nối. • Thiếtlậpkênh RFCOMM. • Kếtnốitớicácthiếtbịđãđượctìmthấy. • Gửivànhậndữliệuvớithiếtbịđượckếtnối. • Quảnlýnhiềukếtnối.

  11. Tìmthiếtbịđanghoạtđộng • SửdụngBluetoothAdapter, bạncóthểtìmthấycácthiếtbị Bluetooth đanghoạtđộnghoặcbằngcáchtruyvấndanhsáchcácthiếtbịđãđượcghépnốitrướcđó. • getBondedDevices(): truyvấnvàthiếtlậpkếtnốitớitấtcảthiếtbịđượctìmthấy. • Lấyđịachỉ Mac củathiếtbịtìmthấybằnglệnhdevice.getAdress() vàlưuvàomArrayAdapter(mảnglưutrữđịachỉ MAC cácthiếtbịđanghoạtđộng)

  12. Discovering devices (khámpháthiếtbị) • ỨngdụngphảiđượcđăngkímộtBroadcastReceiverchomỗiACTION_FOUND mụcđíchnhậnthông tin từthiếtbịđượckếtnốitới. • Vớimỗithiếtbịđượctìmthấy ta cũngsẽlấyđịachỉ Mac vàlưuvàomArrayAdapter

  13. ThiếtlậpthờigianchothiếtbịkháctìmthấythiếtbịcủabạnđanghoạtđộngThiếtlậpthờigianchothiếtbịkháctìmthấythiếtbịcủabạnđanghoạtđộng • Mặcđịnhthờigianchocácthiếtbịbluetoothlâncậntìmthấythiếtbịcủabạnđanghoạtđộnglà 120s tuynhiênbạncóthểthayđổithờigiannàytừgiátrị 0 -> 3600s bằngcáchthêmcác intent EXTRA_DISCOVERABLE_DURATION. Nếugiátrị 0 đượcthiếtlậptứclàthiếtbịcủabạnluônluônđượcpháthiện.

  14. Kếtnốigiữa 2 thiếtbị • Giốngnhưlậptrình socket trên java trênkếtnốigiữa 2 thiếtbị qua bluetoothtrên android cũngsửdụngcơchế client – server. • KhimáychủvàmáykháchcóchungmộtkếtnốiBluetoothSockettrêncùngmộtkênhRFCOMM thì 2 thiếtbịđượckếtnốivớinhau. Lúcnàymỗithiếtbịcóthểchuyểngiaodữliệuchonhau.

  15. server • MởmộtBluetoothServerSocketbởilờigọihàmlistenUsingRfcommWithServiceRecord(String, UUID) - String làtênbấtkìbạnmuốnđặtcóthểlàtênthiếtbị hay ứngdụngcủabạn. - UUID làmộtmã 128bit địnhdạnglàmộtchuỗi ID đểsửdụngxácđịnhthông tin hay xácđịnhứngdụngbluetoothcủabạn. • Bắtđầulắngnghevàchấpnhậnkếtnốibằnglờigọiaccept(). • Đóngkếtnốibằnglờigọiclose().

  16. Vídụtạomột Server

  17. Vídụtạomột Server

  18. client • SửdụngBluetoothDevicenhậnmộtBluetoothSocketbởilờigọicreateRfcommSocketToServiceRecord(UUID). -khởitạomộtBluetoothSocketsẽkếtnốitớiBluetoothDevice. UUID phảiphùhợpvới UUID trên server khinómởkếtnốiBluetoothServerSocket • Bắtđầukếtnốibằngcáchgọiconnect(). - hệthốngsẽtựthựchiệntracứu SPD trêncácthiết bịtừxađểphùhợp UUID. Nếutracứuthànhcôngvà đượcchấpnhậnkếtnối, nósẽ chia sẻkênhRFCOMMsửdụngtrongkếtnốigiữa 2 thiếtbị.

  19. VíDụ Client

  20. VíDụ Client

  21. Quảnlýmộtkếtnối Khibạnđãcómộtkếtnốigiữa 2 thiếtbịthànhcông. Lúcnàyđể chia sẻdữliệubạncầndùngBluetoothSocket • LấyInputStreamvàOutputStreamxửlývàtruyền qua socket, thông qua getInputStream()vàgetOutputStream(). • Đọcvàghidữliệuvớiread(byte[]) vàwite(byte[]).

  22. Vídụquảnlýmộtkếtnối

  23. Vídụquảnlýmộtkếtnối

  24. Vídụbluetooth chat

  25. Nguồnthamkhảo • http://developer.android.com/guide/topics/wireless/bluetooth.html

More Related