以编程方式将WP8设备连接到蓝牙耳机

时间:2013-01-09 10:02:41

标签: c# .net bluetooth windows-phone-8

我正在尝试使用存储在NFC标签上的一些信息将Windows Phone 8手机与通用蓝牙耳机连接。至于蓝牙部分,应该可以使用

找到有效的配对设备
PeerFinder.AlternateIdentities["Bluetooth:Paired"] = "";
var peers = await PeerFinder.FindAllPeersAsync();

并致电

  

await socket.ConnectAsync(peer.HostName,   服务名);

连接到特殊设备。但是,我无法获得serviceName。根据文档,设备应该返回PeerInformation.ServiceName中的广告服务,但我只是得到空字符串。

是否有一些解决方法可以获得支持的服务(蓝牙配置文件)?我特别需要使用A2DP配置文件连接bt设备,但我无法获得(甚至在互联网上找到)正确的服务名称字符串。

1 个答案:

答案 0 :(得分:1)

ConnectAsync打开一个套接字,供调用程序发送/接收数据。这不是你想要的,而是你希望操作系统连接到耳机服务。在Win32中BluetoothSetServiceState,但我不知道等效的'现代'API。

同样在Win32中,可以使用会导致配对的BluetoothAuthenticateDeviceEx *可能*连接耳机服务 - 并且如果由NFC提供,则使用完整的带外身份验证渠道。我再一次不知道等价物。

我认为对任意端点(例如"15")执行ConnectAsync可能会导致配对启动,然后完成并启用Headset服务...... ConnectAsync调用本身将失败,但它是它的副作用我们感兴趣。值得一试。

据推测,您从NFC通信中获取耳机设备的设备地址?如果是这样,您可以创建要在HostName中使用的ConnectAsync对象,正如Peter所描述的那样:http://peterfoot.net/PersistBluetoothAddressesOnWindowsPhone8.aspx