当前位置: 首页 > 知识库问答 >
问题:

尝试配对蓝牙设备时,只能检索所有服务

时经纬
2023-03-14

我正在编写一个带有SPP的Windows/Windows Phone 8.1蓝牙应用程序,最终用户需要选择要使用的配对蓝牙设备。

问题#1:

我无法仅获取与我的设备配对的已配对蓝牙设备。我只能在设备上获取所有服务。

注意:我正在使用与Windows 7笔记本电脑配对的Windows Phone 8.1设备蓝牙

DeviceInformationCollection CollectionOfDeviceInfo;

PeerFinder.AlternateIdentities["Bluetooth:Paried"] = ""; 

//CollectionOfDeviceInfo = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort)); 
CollectionOfDeviceInfo = await DeviceInformation.FindAllAsync();

FindAllAsync()为我提供电话上的所有服务,包括配对蓝牙和所有这些服务。

问题#2:

我不知道我需要从蓝牙中获得SPP的哪个服务。如果我知道我需要蓝牙中的哪个服务,我会从庞大的服务列表中过滤它。

我一直在查看MSDN中的BluetoothRfcommChat和BluetoothCommunicationsSample,但这并没有什么帮助。

共有1个答案

汪兴为
2023-03-14

哈,我拿到了RfcommServiceId。串行端口正常工作。需要添加

<Capabilities>
  <m2:DeviceCapability Name="bluetooth.rfcomm">
    <m2:Device Id="any">
      <m2:Function Type="name.serialPort"/>
    </m2:Device>
  </m2:DeviceCapability>
</Capabilities>

我的包裹。appxmanifest(提示:右键单击-

然后是我的线路

CollectionOfDeviceInfo = await DeviceInformation.FindAllAsync(RfcommDeviceService.GetDeviceSelector(RfcommServiceId.SerialPort));

效果很好。

为了解决这个问题,我让BluetoothRfcomchat在Windows 8.1笔记本电脑和Winows Phone 8.1设备上运行。配对后,我确实需要重新启动笔记本电脑,并从启动互动程序而不是调试中运行应用程序。手机端我不需要重启,可以通过调试运行。

 类似资料:
  • ap.getBLEDeviceServices(OPTION | deviceId, CALLBACK) 获取蓝牙设备所有 service(服务)。 OPTION 参数说明 名称 类型 必填 描述 deviceId String 是 蓝牙设备 id,参考 device 对象 CALLBACK 参数说明 名称 类型 描述 services Array service 对象,详见下表 service对

  • 我正在Visual Studio 2015中用C语言为运行Windows IoT Core的Raspberry PI 2设备开发。 对于我的应用程序,我需要配对和取消配对蓝牙设备 我可以获得配对/未配对/所有蓝牙设备的列表吗<类似于内置管理网站的蓝牙页面(http://[设备IP]:8080/Bluetooth.htm) 我找到了一个例子(https://github.com/Microsoft/

  • deviceName String deviceId String

  • 我正在开发一款连接蓝牙物联网设备的Flitter应用程序。我正在使用Flatter_blue图书馆。该库允许扫描附近的蓝牙设备。基于该扫描,您可以“连接”到设备。没有与设备配对的概念。 根据我以前在手机上使用蓝牙的经验(连接到我的汽车和蓝牙扬声器时),我必须在Android操作系统上配对设备。 我很好奇,从高层次上讲,配对设备和连接设备之间有什么区别。此外,更具体地说,在操作系统内配对设备与扫描并

  • 是否可以自动连接到蓝牙低能耗(BLE)设备? Android文档表明[](https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#connectGatt(android.content.Context,boolean,android.bluetooth.BluetoothGattCallback)

  • 我正在尝试枚举所有与我的设备配对的蓝牙设备。在设置中,我可以查看配对的设备,但以下代码不返回任何项目: 我看过这篇和其他使用这种方法的帖子,但我似乎无法让它发挥作用。 我在Manifest.xml有以下权限: 此外,如果我将其中一个已配对的设备置于发现模式并进行扫描,则该设备会以已配对的状态返回。如果我检查: 从扫描中,它返回true。 我做错了什么或不理解什么?