internal BluetoothGattDescriptor GetDescriptor(BluetoothGattCharacteristic characteristic, string uuid) { BluetoothGattAttributeHandle handle; int err = Interop.Bluetooth.BtGattCharacteristicGetDescriptor(_handle, uuid, out handle); if (err.IsFailed()) { GattUtil.Error(err, string.Format("Failed to get descriptor with UUID ({0})", uuid)); return(null); } BluetoothGattDescriptor descriptor = BluetoothGattDescriptorImpl.CreateBluetoothGattDescriptor(handle, uuid); descriptor.SetParent(characteristic); return(descriptor); }
internal IEnumerable <BluetoothGattDescriptor> GetDescriptors(BluetoothGattCharacteristic characteristic) { List <BluetoothGattDescriptor> attribututeList = new List <BluetoothGattDescriptor>(); Interop.Bluetooth.BtGattForeachCallback cb = (total, index, attributeHandle, userData) => { BluetoothGattAttributeHandle handle = new BluetoothGattAttributeHandle(attributeHandle, false); BluetoothGattDescriptor descriptor = BluetoothGattDescriptorImpl.CreateBluetoothGattDescriptor(handle, ""); if (descriptor != null) { descriptor.SetParent(characteristic); attribututeList.Add(descriptor); } return(true); }; int err = Interop.Bluetooth.BtGattCharacteristicForeachDescriptors(characteristic.GetHandle(), cb, IntPtr.Zero); GattUtil.Error(err, "Failed to get all descriptor"); return(attribututeList); }