在ble协议中,有两个角色,周边和中央。其中周边负责提供数据,中央负责处理周边提供的数据。一个设备,既可以是中央也可以是周边。中央和周边相互依存,缺一不可。
先了解一下基本的概念:
GATT:他是通过ble连接,读写属性类小数据profile的通用规范。
ATT:GATT是基于ATT的。根据英文的翻译是属性协议。
下面来看一下ble sdk中的四个关键类:
A.BluetoothGattServer:作为周边来提供数据
B.BluetoothGattServerCallback:返回周边的状态。
C.BluetoothGatt:作为中央使用,处理周边的数据。
D.BluetoothGattCallback:返回中央状态和周边提供的数据。
创建一个周边
1.new一个特征
character=new BluetoothGattCharacteristic(UUID,
BluetoothGattCharacteristic.PROPERTY_NOTIFY,
BluetoothGattCharacteristic.PERMISSION_READ
BluetoothGattCharacteristic.PROPERTY_NOTIFY,BlueetoothGattCharacteristic.PERMISSION_READ);第一个参数为自定义的特征的uuid,第二个参数为这个特征支持的状态(READ,WRITE,NOTIFY),第三个参数是为这个特征添加的权限。
2.new一个服务
service=new BluetoothGattService(UUID,BluetoothGattService_SERVICE_TYPE_PRIMARY);
3.把特征添加到服务
service.addChararicteristic(character);
4.获取BluetoothManager
manager=(BluetoothManeger)getSystemService(Context.BLUETOOTH_SERVICE);
5.打开/获取周边
BluetoothGattServer gatt_server=manager.openGattServer(this,new BluetoothGattCallback(){...});
6.把servier添加到周边
gatt_server.addService(service);
7.广播service
以上就是从机的代码