Android 蓝牙 4.0 Ble 读写数据详解 -1
因为最近公司在开发智能硬件这一块,于是就学习了下 Android 4.0 Ble 的蓝牙开发
刚开始的时候,网上找了很多博客,很多文章,但是大体都差不多,甚至很多一模一样的文章,找不到什么有用的资料,后来干脆放弃网上的资料了,自己动手,用代码来摸索。摸索了挺长时间。
首先 权限肯定是要的: <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 创建Activity 然后写一个Listview 用来展示设备列表 这些我就不写在文档了 其次获取到蓝牙的管理类: BluetoothManager bluetoothManager = (BluetoothManager) bluetoothService.getSystemService(Context.BLUETOOTH_SERVICE); BluetoothAdapter adapter = bluetoothManager.getAdapter(); 开启扫描: BluetoothAdapter.LeScanCallback leScanCallback = new BluetoothAdapter.LeScanCallback() { /** * * @param device 扫描到的设备 * @param rssi * @param scanRecord */ @Override public void onLeScan(BluetoothDevice device, int rssi, byte[] scanRecord) { String address = device.getAddress(); String name = device.getName(); // 然后将device先判断一下 是否已经在列表了 如果不在的话 就添加到listview列表上 } }; adapter.startLeScan(leScanCallback); 停止扫描 adapter.stopLeScan(leScanCallback); 开始连接蓝牙: /** * 需要连接的设备 可以从适配器当中使用MAC地址获取到设备 然后再进行链接 也可以直接从扫描到存储的列表直接取出来 */ BluetoothDevice remoteDevice = adapter.getRemoteDevice(address); remoteDevice.connectGatt(bluetoothService, false, new BluetoothGattCallback() { /** * 蓝牙设备状态的监听 * * @param gatt * @param status * @param newState 蓝牙的状态被改变 */ @Override public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { super.onConnectionStateChange(gatt, status, newState); switch (newState) {//对蓝牙反馈的状态进行判断 case BluetoothProfile.STATE_CONNECTED://已链接 LogUtils.log("已连接"); break; case BluetoothProfile.STATE_DISCONNECTED://已断开 LogUtils.log("已断开"); break; } } });
至此 一个简单的蓝牙链接例子已经结束。之后再详解,传输数据,与读取数据和接收 Notify 通知。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于