继承BluetoothProfile,通过BluetoothGatt可以连接设备(connect),发现服务(discoverServices),并把相应地属性返回到BluetoothGattCallback
相当于一个数据类型,它包括一个value和0~n个value的描述(BluetoothGattDescriptor)
描述符,对Characteristic的描述,包括范围、计量单位等
服务,Characteristic的集合。
一个通用的规范,按照这个规范来收发数据。
通过BluetoothManager来获取BluetoothAdapter BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
一个Android系统只有一个BluetoothAdapter ,通过BluetoothManager 获取 BluetoothAdapter mBluetoothAdapter = bluetoothManager.getAdapter();
已经连接上设备,对设备的某些操作后返回的结果。这里必须提醒下,已经连接上设备后的才可以返回,没有返回的认真看看有没有连接上设备。
private BluetoothGattCallback GattCallback = new BluetoothGattCallback() {
// 这里有9个要实现的方法,看情况要实现那些,用到那些就实现那些
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState){};
public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status){};
};
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
BluetoothGatt gatt = device.connectGatt(this, false, mGattCallback);
gatt.setCharacteristicNotification(characteristic, true);
gatt.readCharacteristic(characteristic);
gatt.wirteCharacteristic(mCurrentcharacteristic);
gatt.writeDescriptor(descriptor);
gatt.readRemoteRssi()
gatt.discoverServices()
扫描后发现可连接的设备,获取已经连接的设备
如果 android.hardware.bluetooth_le设置为false,可以安装在不支持的设备上使用,判断是否支持蓝牙4.0用以下代码就可以了if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
Toast.makeText(this, "设备不支持蓝牙4.0", Toast.LENGTH_SHORT).show();
finish();
}
if (mBluetoothAdapter == null || !mBluetoothAdapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); }
mBluetoothAdapter.enable();
mBluetoothAdapter.disable();
--------------------------------------------******************************************************************************----------------------------------------------------