某些手机​​不支持 C# 32feet obex 蓝牙

C# 32feet obex bluetooth not supported by some phones

我有一个卡拉 OK 机记录用户的项目,然后让用户使用 his/her phone 通过蓝牙连接到机器并下载他们的录音。在大量阅读、示例和文档之后,我尝试使用 32feet(卡拉 OK 是用 C# .NET 编写的),但我发现的唯一方法发送文件使用的是 ObexWebResponse,有些 phone 没有该服务:

http://oi62.tinypic.com/153s8p5.jpg(图片来自蓝牙OBEX文件传输)

这会导致程序抛出异常 (此代码是我从此处的答案中提取的示例,用于测试发送视频文件,然后取消对话框并使其更加自动一次用户将自己与卡拉 OK 机配对):

    private void sendfile()
    {
        SelectBluetoothDeviceDialog dialog = new SelectBluetoothDeviceDialog();
        dialog.ShowAuthenticated = true;
        dialog.ShowRemembered = true;
        dialog.ShowUnknown = true;
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Title = "Select File";
        if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            string m_pin = "";
            Console.WriteLine(BluetoothSecurity.PairRequest(dialog.SelectedDevice.DeviceAddress, m_pin));

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                var uri = new Uri("obex://" + dialog.SelectedDevice.ToString() + "/" + ofd.FileName);
                var request = new ObexWebRequest(uri);
                request.ReadFile(ofd.FileName);
                var response = (ObexWebResponse)request.GetResponse(); // << THIS THROWS AN EXCEPTION WITH THE ADDITIONAL INFORMATION: CONNECT FAILED.
                response.Close();
            }
            else
            {
                MessageBox.Show("File Not Selected");
            }
        }
        else
        {
            MessageBox.Show("Device Not Selected");
        }
    }

Debbuger 还显示:http://oi62.tinypic.com/e6rpkg.jpg

有没有OBEX的替代品?与每个 phone 兼容的东西,或者为那些不兼容的设备与 OBEX 混合的方法。

我已经使用本机 Windows 应用程序 (控制面板 > 设备和打印机 > 蓝牙设备 > 'device name' > 发送文件) 发送文件所以这不是一个真正与硬件相关的问题,如果即使在其他语言或库中也有任何解决方案,请给我一个关于如何实现这一目标的指导。

提前感谢您抽空阅读!

还没有因为我自己当前的 PC/Bluetooth 通信问题(目前使用 32feet 和 C#)而求助于此,但是我确实遇到了一个用于 C++ 的原生 Microsoft 库:https://msdn.microsoft.com/en-us/library/windows/desktop/aa362932%28v=vs.85%29.aspx

正如我所说,我自己没有尝试过,所以不能保证,但它可能值得一看?