微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > android 手机 无法收到notification通知

android 手机 无法收到notification通知

时间:10-02 整理:3721RD 点击:

最近在做android手机与蓝牙节点之间的通信,手机作为Master,Android版本为4.4.2,蓝牙节点作为Slave,基于TI官方的SimplePeripheral例程。想利用char4的noyify功能,在手机端进行相应设置,手机连接上蓝牙节点之后,在蓝牙节点端修改char4的值,手机端无法收到char4改变的通知。手机端配置如下:

public void onServicesDiscovered(final BluetoothGatt gatt, int status) {
	super.onServicesDiscovered(gatt, status);
	BluetoothGattService service = gatt.getService(UUID.fromString(GattConstants.SERVICE_UUID));
	BluetoothGattCharacteristic characteristic_4 = service.getCharacteristic(UUID.fromString(GattConstants.CHARACTERISTIC_UUID_4));
	setCharIndication(characteristic_4, true);
}

public void setCharIndication(BluetoothGattCharacteristic characteristic, boolean isEnabled){
	if (bluetoothGatt != null){
		bluetoothGatt.setCharacteristicNotification(characteristic, isEnabled);
		BluetoothGattDescriptor descriptor = characteristic.getDescriptor(UUID.fromString(GattConstants.CLIENT_CHARACTERISTIC_CONFIG));
		descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
		bluetoothGatt.writeDescriptor(descriptor);
	}
}

有遇到过类似问题的吗?谢谢!

你可以参考追踪一下DeviceActivity.java 文件里面的  private void enableNotifications(boolean enable) 函数,这个就是会使能远端的notification, 这里的远端用的是TI的sensortag,但足以参考,另外,还是在DeviceActivity.java 中,追踪一下 private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver()  中的 else if (BluetoothLeService.ACTION_DATA_NOTIFY.equals(action)) , 这是在你用上面的函数使能了对方notifidation之后, 收到对方notification发过来的数据,就是之后的动作。

我对照了一下,使能远端的notification设置是一样的,但是我收不到对方的notification通知,所以也就没有之后的数据处理动作。不过,还是谢谢您的回答。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top