我在我的研究中找到了这个例子(https://developer.nokia.com/Community/Wiki/Windows_Phone_8_communicating_with_Arduino_using_Bluetooth)来为 Windows phone 8 开发一个蓝牙控制台。这个例子工作得很好,除了 TERMINATE 功能。当我调用 TERMINATE 函数时,ReceiveMessages 函数仍在尝试接收数据,但没有更多可用的套接字,它会生成一个 system.exception。我尝试了很多解决方法,但我没有足够的 C# 经验,这是我的第一个 APP。任何人都知道我该如何解决这种情况或有更好的例子?
我只做了 1 处修改:
private async void AppToDevice()
{
if (!connected)
{
ConnectAppToDeviceButton.Content = "Connecting...";
PeerFinder.AlternateIdentities["Bluetooth:Paired"] = "";
var pairedDevices = await PeerFinder.FindAllPeersAsync();
if (pairedDevices.Count == 0)
{
Debug.WriteLine("No paired devices were found.");
}
else
{
foreach (var pairedDevice in pairedDevices)
{
if (pairedDevice.DisplayName == DeviceName.Text)
{
connectionManager.Connect(pairedDevice.HostName);
ConnectAppToDeviceButton.Content = "Disconnect";
DeviceName.IsReadOnly = true;
//ConnectAppToDeviceButton.IsEnabled = false;
continue;
}
}
}
}
else
{
connectionManager.Terminate();
ConnectAppToDeviceButton.Content = "Connect";
}
}