Android BLE代码部分分析

QppActivity.java
private final ServiceConnection mServiceConnection = new ServiceConnection() {
mBluetoothLeService 在 mServiceConnection 中 得到实例
mBluetoothLeService.connect(mDeviceAddress);

connect中
mBluetoothGatt = device.connectGatt(this, false, mGattCallback);
连接到GATT服务端时,由BLE设备做主机,并返回一个BluetoothGatt实例,然后你可以使用这个实例来进行GATT客户端操作。请求方(Android app)是GATT客户端。BluetoothGattCallback用于传递结果给用户,例如连接状态,以及任何进一步GATT客户端操作
private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver()
BluetoothLeService.ACTION_GATT_SERVICES_DISCOVERED.equals(action)
if (QppApi.qppEnable(mBluetoothGatt, uuidQppService, uuidQppCharWrite)) {

onCreat 中
Intent gattServiceIntent = new Intent(this, BluetoothLeService.class);
bindService(gattServiceIntent, mServiceConnection, BIND_AUTO_CREATE);

onResume()
注册广播
registerReceiver(mGattUpdateReceiver, makeGattUpdateIntentFilter());
public void onReceive(Context context, Intent intent) 中
接收到BluetoothLeService.ACTION_GATT_SERVICES_DISCOVERED.
QppApi.qppEnable(mBluetoothGatt, uuidQppService, uuidQppCharWrite)

//
BluetoothLeService.java 是一个服务
public class BluetoothLeService extends Service {

private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback()
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) intentAction = ACTION_GATT_CONNECTED;
intentAction = ACTION_GATT_DISCONNECTED;
broadcastUpdate(intentAction);
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
broadcastUpdate(ACTION_GATT_SERVICES_DISCOVERED, status);
}

	@Override
	public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
		if (status == BluetoothGatt.GATT_SUCCESS) {
			broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
		}
	}

	@Override
	public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
		broadcastUpdate(ACTION_WRITE_STATUS, status);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值