在安卓上进行BLE开发时,就不必像理解BLE协议栈那样复杂了。因为安卓的BLE包为我们提供了十分丰富的API、各类常量、各类连接通信情况下的回调API等。
具体流程
一、声明权限
二、获取Adapter适配器
三、开启蓝牙
四、BLE扫描与停止
五、连接设备
六、枚举特征值及其属性
七、利用特征值通讯
八、关闭蓝牙
一、声明权限
在AndroidManifest.xml文件中声明应用需要的特性及权限。
<!-- 声明App使用条件为支持BLE -->
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
<!-- 声明蓝牙权限 -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<!-- 安卓6.0开始需要此权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
二、获取Adapter适配器
final BluetoothManager mBluetoothManager =
(BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter mBluetoothAdapter = mBluetoothManager.getAdapter();
三、开启蓝牙
if (mBluetoothAdapter != null && !mBluetoothAdapter.isEnabled()) {
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent, BLE_ENABLE);
}
四、BLE扫描与停止
private boolean mScanning;//是否正在搜索
private Handler mHandler = new Handler();
// 预设15秒扫描时间
private static final int SCAN_PERIOD = 15000;
private void scanLeDevice(final boole