首页 > 代码库 > BLE编程中关键步骤
BLE编程中关键步骤
获取权限
<uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
获取蓝牙适配器的实例
final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); BluetoothAdapter mBluetoothAdapter = bluetoothManager.getAdapter();
BLE搜索:实例化回调函数->启动/停止扫描
1、实例化回调函数
private BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() { @Override public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) { runOnUiThread(new Runnable() { @Override public void run() { //得到蓝牙设备实例 } }); } };
2、启动/停止扫描
mBluetoothAdapter.startLeScan(mLeScanCallback); //开始扫描 mBluetoothAdapter.stopLeScan(mLeScanCallback); //停止扫描
BLE连接:实例化回调函数 -> 连接并绑定回调函数
1、实例化回调函数
private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() { //当连接状态发生改变时会触发 @Override public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { String intentAction; if (newState == BluetoothProfile.STATE_CONNECTED) { //当蓝牙设备已经连接 ... } else if (newState == BluetoothProfile.STATE_DISCONNECTED) { //当设备无法连接 ... } } // 发现新服务时会触发 @Override public void onServicesDiscovered(BluetoothGatt gatt, int status) { if (status == BluetoothGatt.GATT_SUCCESS) { ... } else { ... } } // 读写特性 @Override public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) { if (status == BluetoothGatt.GATT_SUCCESS) { ... } } ... };
2、获取蓝牙设备实例,并连接该蓝牙设备实例。
//蓝牙地址实例化一个蓝牙设备,或通过上述扫描传入一个引用。 final BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
//涉及的三个参数:一个Context对象,自动连接(boolean值,表示只要BLE设备可用是否自动连接到它),和BluetoothGattCallback调用。 private BluetoothGatt mBluetoothGatt = device.connectGatt(this, false, mGattCallback);
BLE编程中关键步骤
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。