C# 访问蓝牙设备
我有蓝牙LE模块rn4020,我成功地将其配对并连接到我的WP8.1,但我找不到具有以下代码的模块:C# 访问蓝牙设备,c#,windows-phone-8.1,bluetooth-lowenergy,C#,Windows Phone 8.1,Bluetooth Lowenergy,我有蓝牙LE模块rn4020,我成功地将其配对并连接到我的WP8.1,但我找不到具有以下代码的模块: private async void ScanDevices() { lstDevices.Items.Clear(); string genericUUID = GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.GenericAccess); foreach (De
private async void ScanDevices()
{
lstDevices.Items.Clear();
string genericUUID = GattDeviceService.GetDeviceSelectorFromUuid(GattServiceUuids.GenericAccess);
foreach (DeviceInformation di in await DeviceInformation.FindAllAsync(genericUUID))
{
BluetoothLEDevice bleDevice = await BluetoothLEDevice.FromIdAsync(di.Id);
lstDevices.Items.Add(new MyBluetoothLEDevice(bleDevice));
}
}
我已将此加载项添加到清单中:
<Capabilities>
<m2:DeviceCapability Name="bluetooth.genericAttributeProfile">
<m2:Device Id="any">
<m2:Function Type="serviceId:1803" />
</m2:Device>
</m2:DeviceCapability>
Foreach不返回任何设备。所以我的问题是,如果有人知道我忘记了什么或做错了什么(模块也可能是问题,但我不认为我配对/连接它时没有问题)。如果没有一个完整的可复制场景(这很难,当方程的一半是可复制的设备时),就不可能确定代码中存在什么问题。然而,对我来说,最明显的问题似乎是错误服务ID的规范 在代码中,您正在搜索
GattServiceUuids.genericacess
。它对应于GUID{00001800-0000-1000-8000-00805f9b34fb}
,或缩写形式的GATT UUID0x1800
。但在清单中,您指定的是serviceId:1803
根据本发明,0x1803的ID甚至不对应于已知服务
在Windows RT中,您实际上可以,例如
。我不知道Windows Phone是否支持同样的功能,但值得一试。否则,您应该指定0x1800
的实际正确ID
还要注意,我不确定Windows Phone是否允许在清单中使用短ID。如果
name:genericacess
和serviceId:1800
都不起作用,则应如上所示指定完整的GUID。如果没有完整的可复制场景(这很难,当等式的一半是可复制设备时),则无法确定代码中存在哪些问题。然而,对我来说,最明显的问题似乎是错误服务ID的规范
在代码中,您正在搜索GattServiceUuids.genericacess
。它对应于GUID{00001800-0000-1000-8000-00805f9b34fb}
,或缩写形式的GATT UUID0x1800
。但在清单中,您指定的是serviceId:1803
根据本发明,0x1803的ID甚至不对应于已知服务
在Windows RT中,您实际上可以,例如
。我不知道Windows Phone是否支持同样的功能,但值得一试。否则,您应该指定0x1800
的实际正确ID
还要注意,我不确定Windows Phone是否允许在清单中使用短ID。如果
name:genericacess
和serviceId:1800
都不起作用,则应如上所示指定完整的GUID。感谢您的回复,但我尝试了所有建议,但均未成功。我会在windows RT中尝试,当我得到BLE usb加密狗和android手机,以确保模块工作。但我认为程序应该找到BLE设备,不管我在清单中输入了错误的GUID,只有当我尝试读/写它时,我才会得到错误。“我认为程序应该找到BLE设备,不管我在清单中输入了错误的GUID”-你们肯定错了。Windows使用清单来决定向用户公开哪些可扩展设备和服务。根据我的经验,即使清单中列出了设备/服务,Windows也会询问用户是否批准应用程序访问该设备。应用程序完全看不到清单中未列出的设备或服务。感谢您的回复,但我尝试了所有建议,但均未成功。我会在windows RT中尝试,当我得到BLE usb加密狗和android手机,以确保模块工作。但我认为程序应该找到BLE设备,不管我在清单中输入了错误的GUID,只有当我尝试读/写它时,我才会得到错误。“我认为程序应该找到BLE设备,不管我在清单中输入了错误的GUID”-你们肯定错了。Windows使用清单来决定向用户公开哪些可扩展设备和服务。根据我的经验,即使清单中列出了设备/服务,Windows也会询问用户是否批准应用程序访问该设备。清单中未列出的设备或服务对应用程序完全不可见。