1.什么是藍(lán)牙通信?
藍(lán)牙是一種工作在全球通用的2.4GHz ISM(即工業(yè)、科學(xué)、醫(yī)學(xué))頻段的短距離通信技術(shù),通信距離在10m左右,其采用分散式網(wǎng)絡(luò)結(jié)構(gòu)以及快跳屏和短包技術(shù),支持點(diǎn)對(duì)點(diǎn)及多點(diǎn)通信,已被廣泛應(yīng)用于智能手機(jī)及可穿戴設(shè)備領(lǐng)域等各個(gè)領(lǐng)域
??????藍(lán)牙協(xié)議分為4層,即核心協(xié)議層、電纜替代協(xié)議層、電話控制協(xié)議層和采納的其它協(xié)議層。這4種協(xié)議中最重要的是核心協(xié)議。藍(lán)牙的核心協(xié)議包括基帶、鏈路管理、邏輯鏈路控制和適應(yīng)協(xié)議四部分。其中鏈路管理(LMP)負(fù)責(zé)藍(lán)牙組件間連接的建立。邏輯鏈路控制與適應(yīng)協(xié)議(L2CAP)位于基帶協(xié)議層上,屬于數(shù)據(jù)鏈路層,是一個(gè)為高層傳輸和應(yīng)用層協(xié)議屏蔽基帶協(xié)議的適配協(xié)議。
3.藍(lán)牙的操作
Android提供藍(lán)牙API來執(zhí)行這些不同的操作。
1. 開關(guān)藍(lán)牙
2. 掃描其他藍(lán)牙設(shè)備
3. 獲取配對(duì)設(shè)備列表
4. 連接到通過服務(wù)發(fā)現(xiàn)其他設(shè)備
4.藍(lán)牙權(quán)限(藍(lán)牙權(quán)限是重要的,不設(shè)置權(quán)限就沒了呀)
1. android.permission.BLUETOOTH
??????允許程序連接到已配對(duì)的藍(lán)牙設(shè)備,請(qǐng)求連接/接收連接/傳輸數(shù)據(jù)需要改權(quán)限, 主要用于對(duì)配對(duì)后進(jìn)行操作
2. android.permission.BLUETOOTH_ADMIN?
??????允許程序發(fā)現(xiàn)和配對(duì)藍(lán)牙設(shè)備, 該權(quán)限用來管理藍(lán)牙設(shè)備, 有了這個(gè)權(quán)限, 應(yīng)用才能使用本機(jī)的藍(lán)牙設(shè)備, 主要用于對(duì)配對(duì)前的操作
5.BluetoothAdapter(藍(lán)牙的適配器)
BluetoothAdapter代表了移動(dòng)設(shè)備的本地的藍(lán)牙適配器, 通過該藍(lán)牙適配器可以對(duì)藍(lán)牙進(jìn)行基本操作
BluetoothAdapter.getDefaultAdapter()該靜態(tài)方法可以獲取該適配器對(duì)象.
6.藍(lán)牙的BluetoothAdapter .STATE 狀態(tài)值 , 即開關(guān)狀態(tài)
1.藍(lán)牙關(guān)閉 int STATE_OFF //值為10, 藍(lán)牙模塊處于關(guān)閉狀態(tài);
2.藍(lán)牙打開中 int STATE_TURNING_ON //值為11, 藍(lán)牙模塊正在打開;
3.藍(lán)牙開啟 int STATE_ON //值為12, 藍(lán)牙模塊處于開啟狀態(tài);
4. 藍(lán)牙開啟中 int STATE_TURNING_OFF //值為13, 藍(lán)牙模塊正在關(guān)閉;
藍(lán)牙開關(guān)狀態(tài)順序 : STATE_OFF –> STATE_TURNING_ON –> STATE_ON –>STATE_TURNING_OFF –> STATE_OFF