You are on page 1of 25

S DNG BLUETOOTH APIS

BLUETOOTH L G?
Bluetooth cho php mt thit b trao i d liu khng dy vi cc thit b Bluetooth khc. Khung ng dng cung cp truy cp cc chc nng Bluetooth thng qua Bluetooth Android APIs. Cc APIs cho php cc ng dng kt ni khng dy vi cc thit b Bluetooth khc, cho php kt ni khng dy theo phng thc point-to-point v multipoint.

TO MT NG DNG BLUETOOTH CHNG TA CN NHNG G?


to kt ni bluetooth chng ta s dng gi android.bluetooth c sn. android.bluetooth: Cung cp cc lp qun l chc nng Bluetooth, chng hn nh qut cc thit b ln cn ang hot ng, kt ni vi cc thit b, v qun l truyn d liu gia cc thit b.

GI ANDROID.BLUETOOTH GM CC LP NO?
BluetoothAdapter: cho php bn thc hin cc nhim v Bluetooth c bn, chng hn nh bt u pht hin ra thit b, truy vn mt danh sch cc kho ngoi quan (ghp ni) cc thit b, to mt BluetoothDevice bng cch s dng mt a ch MAC c bit n, v to ra mt BluetoothServerSocket lng nghe yu cu kt ni t cc thit b khc. BluetoothDevice cho php bn to mt kt ni vi cc thit b, truy vn thng tin v n, chng hn nh tn, a ch, lp hc, v nh nc lin kt.

GI ANDROID.BLUETOOTH GM CC LP NO?
BluetoothServerSocket v BluetoothSocket

To mt socket lng nghe Bluetooth.


L mt interface cho Socket Bluetooth tng t nh TCP socket gm: Socket v ServerSocket. V pha my ch, s dng mt BluetoothServerSocket to ra mt my ch lng nghe. Khi mt kt ni c chp nhn bi BluetoothServerSocket, n s tr v mt BluetoothSocket qun l kt ni. V pha my khch, s dng mt BluetoothSocket duy nht cho c hai bt u mt kt ni mi v qun l kt ni.

GI ANDROID.BLUETOOTH GM CC LP NO?
BluetoothClass: xc nh thit b c kt ni.

VD: in thoi, my tnh, tai nghe


Ngoi ra cn c nhiu lp ph khc nh: BluetoothProfile, BluetoothHeadset, BluetoothA2dp, BluetoothHealth, BluetoothHealthCallback, BluetoothHealthAppConfiguration, BluetoothProfile.ServiceListener

CP QUYN S DNG BLUETOOTH (BLUETOOTH PERMISSIONS)


s dng tnh nng Bluetooth trong ng dng ca bn, bn cn phi khai bo t nht mt trong hai Bluetooth cho php: BLUETOOTH v BLUETOOTH_ADMIN Khai bo s dng bluetooth trong file manifest.xml trn ng dng ca bn:

THIT LP BLUETOOTH
Trc khi ng dng ca bn c th giao tip qua Bluetooth, bn cn phi xc minh rng Bluetooth c h tr trn thit b, v nu nh vy, m bo rng n c kch hot. Xc nhn cc BluetoothAdapter

getDefaultAdapter() tr v mt BluetoothAdapter i din cho b pht Bluetooth ca thit b. Nu getDefaultAdapter() tr v null tc l thit b khng h tr Bluetooth.

THIT LP BLUETOOTH
Kch hot tnh nng Bluetooth:

isEnabled() kim tra xem bluetooth c ang c bt khng, nu ln ny tr v false th s yu cu h thng kch hot bluetooth qua li gi startActivityForResult() vi ACTION_REQUEST_ENABLE

CC BC TO MT NG DNG BLUETOOTH HOT NG TRN THIT B ANDROID

Qut cc thit b bluetooth ang hot ng.

Truy vn cc b chuyn i Bluetooth cho cc thit b Bluetooth kt ni.


Thit lp knh RFCOMM. Kt ni ti cc thit b c tm thy. Gi v nhn d liu vi thit b c kt ni. Qun l nhiu kt ni.

TM THIT B ANG HOT NG


S dng BluetoothAdapter, bn c th tm thy cc thit b Bluetooth ang hot ng hoc bng cch truy vn danh sch cc thit b c ghp ni trc .

getBondedDevices(): truy vn v thit lp kt ni ti tt c thit b c tm thy. Ly a ch Mac ca thit b tm thy bng lnh device.getAdress() v lu vo mArrayAdapter (mng lu tr a ch MAC cc thit b ang hot ng)

DISCOVERING DEVICES (KHM PH THIT B)

ng dng phi c ng k mt BroadcastReceiver cho mi ACTION_FOUND mc ch nhn thng tin t thit b c kt ni ti. Vi mi thit b c tm thy ta cng s ly a ch Mac v lu vo mArrayAdapter

THIT LP THI GIAN CHO THIT B KHC TM THY THIT B CA BN ANG HOT NG

Mc nh thi gian cho cc thit b bluetooth ln cn tm thy thit b ca bn ang hot ng l 120s tuy nhin bn c th thay i thi gian ny t gi tr 0 -> 3600s bng cch thm cc intent EXTRA_DISCOVERABLE_DURATION. Nu gi tr 0 c thit lp tc l thit b ca bn lun lun c pht hin.

KT NI GIA 2 THIT B
Ging nh lp trnh socket trn java trn kt ni gia 2 thit b qua bluetooth trn android cng s dng c ch client server. Khi my ch v my khch c chung mt kt ni BluetoothSocket trn cng mt knh RFCOMM th 2 thit b c kt ni vi nhau. Lc ny mi thit b c th chuyn giao d liu cho nhau.

SERVER
M mt BluetoothServerSocket bi li gi hm listenUsingRfcommWithServiceRecord(String, UUID)

- String l tn bt k bn mun t c th l tn thit b hay ng dng ca bn.


- UUID l mt m 128bit nh dng l mt chui ID s dng xc nh thng tin hay xc nh ng dng bluetooth ca bn. Bt u lng nghe v chp nhn kt ni bng li gi accept().

ng kt ni bng li gi close().

V D TO MT SERVER

V D TO MT SERVER

CLIENT
S dng BluetoothDevice nhn mt BluetoothSocket bi li gi createRfcommSocketToServiceRecord(UUID). - khi to mt BluetoothSocket s kt ni ti BluetoothDevice. UUID phi ph hp vi UUID trn server khi n m kt ni BluetoothServerSocket Bt u kt ni bng cch gi connect().

- h thng s t thc hin tra cu SPD trn cc thit


b t xa ph hp UUID. Nu tra cu thnh cng v c chp nhn kt ni, n s chia s knh RFCOMM s dng trong kt ni gia 2 thit b.

V D CLIENT

V D CLIENT

QUN L MT KT NI
Khi bn c mt kt ni gia 2 thit b thnh cng. Lc ny chia s d liu bn cn dng BluetoothSocket Ly InputStream v OutputStream x l v truyn qua socket, thng qua getInputStream() v getOutputStream(). c v ghi d liu vi read(byte[]) v wite(byte[]).

V D QUN L MT KT NI

V D QUN L MT KT NI

V D BLUETOOTH CHAT

NGUN THAM KHO


http://developer.android.com/guide/topics/wireless/bluetooth.html

You might also like