Android4.3规范了BLE的API,但是直到目前的4.4,还有些功能不完善。在BLE协议中,有两个角色,周边(Periphery)和中央(Central);周边是数据提供者,中央是数据使用/处理者;在iOSSDK里面,可以把一个iOS设备作为一个周边,也可以作为一个中央;但是在AndroidSDK里面,直到目前最新的Android4.4.2,Android手机只能作为中央来使用和处理数据;那数据从哪儿来?从BLE设备来,现在的很多可穿戴设备都是用BLE来提供数据的。一个中央可以同时连接多个周边,但是一个周边某一时刻只能连接一个中央。大概了解了概念后,看看AndroidBLESDK的四个关键类(class):a)BluetoothGattServer作为周边来提供数据;BluetoothGattServerCallback返回周边的状态。b)BluetoothGatt作为中央来使用和处理数据;BluetoothGattCallback返回中央的状态和周边提供的数据。因为我们讨论的是Android的BLESDK,下面所有的BluetoothGattServer代表周边,BluetoothGatt代表中央。一.创建一个周边(虽然目前周边API在Android手机上不工作,但还是看看)a)先看看周边用到的class,蓝色椭圆b)说明:每一个周边BluetoothGattServer,包含多个服务Service,每一个Service包含多个特征Characteristic。1.new一个特征:character=newBluetoothGattCharacteristic(UUID.fromString(characteristicUUID),BluetoothGattCharacteristic.PROPERTY_NOTIFY,BluetoothGattCharacteristic.PERMISSION_READ);2.new一个服务:service=newBluetoothGattService(UUID.fromString(serviceUUID),BluetoothGattService.SERVICE_TYPE_PRIMARY);3.把特征添加到服务:service.addCharacteristic(character);4.获取BluetoothManager:manager=(BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE);5.获取/打开周边:BluetoothGattServerserver=manager.openGattServer(this,newBluetoothGattServerCallback(){});6.把service添加到周边:server.addService(service);7.开始广播service:Google还没有广播Service的API,等吧!!!!!所以目前我们还不能让一个Android手机作为周边来提供数据。二.创建一个中央(这次不会让你失望,可以成功创建并且连接到周边的)a)先看看中央用到的class,蓝色椭圆