隨着近兩年可穿戴式產品逐漸進入人們的生活,藍牙開發也成為了Android開發的一個重要模塊,下面我們就來說一說藍牙的這些API。
1.藍牙開發有兩個主要的API:
BuletoothAdapter:本地藍牙的適配器,也就是說當前應用程序所運行的Android設備上的藍牙
BuletoothDevice : 遠程的藍牙適配器,也就是說你要連接的Android設備的適配器。
2.藍牙權限 :
android.permission.BLUETOOTH : 允許程序連接到已配對的藍牙設備, 請求連接/接收連接/傳輸數據需要改權限, 主要用於對配對后進行操作;
android.permission.BLUETOOTH_ADMIN : 允許程序發現和配對藍牙設備, 該權限用來管理藍牙設備, 有了這個權限, 應用才能使用本機的藍牙設備, 主要用於對配對前的操作;
優先級 : BLUETOOTH權限是BLUETOOTH_ADMIN權限的前提, 如果沒有BLUETOOTH權限, 就不能使用BLUETOOTH_ADMIN權限;
3.藍牙狀態值:
藍牙關閉 : int STATE_OFF , 值為10, 藍牙模塊處於關閉狀態;
藍牙打開中 : int STATE_TURNING_ON , 值為11, 藍牙模塊正在打開;
藍牙開啟 : int STATE_ON , 值為12, 藍牙模塊處於開啟狀態;
藍牙開啟中 : int STATE_TURNING_OFF , 值為13, 藍牙模塊正在關閉;
4.藍牙相關的廣播:
開關狀態改變:
BluetoothAdapter.ACTION_STATE_CHANGE:
可以通過intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR)獲取當前藍牙改變的狀態。
搜索到附近可用設備:
BluetoothDevice.ACTION_FOUND:
可以通過intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 獲取當前搜索到的遠程設備。
配對請求:
BluetoothDevice.ACTION_PAIRING_REQUEST
配對狀態改變:
BluetoothDevice.ACTION_PAIRING_REQUEST:
5.常用方法:
打開/關閉 藍牙:
BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter(); //獲取本地藍牙實例
if (!mAdapter.isEnabled()){
mAdapter.enable(); //打開藍牙
}else{
mAdapter.enable(); //關閉藍牙
}
設置藍牙可見性:
可見:adapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
不可見:adapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE);
設置可見性超時時間: adapter.setDiscoverableTimeout(BLUETOOTH_DSCOVERABLE_TIME);
開始 / 停止 掃描附近的設備:
mAdapter.startDiscovery(); //開始掃描
mAdapter.startDiscovery(); //停止掃描
獲取藍牙基本信息:
MAC地址:mAdapter.getAddress();
名稱: mAdapter.getName();
與遠程設備配對:
try {
Method createBondMethod = BluetoothDevice.class.getMethod("createBond");
createBondMethod.invoke(device);
} catch (Exception e) {
e.printStackTrace();
}
