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

时间:2015-03-03 13:39:29

标签: c# .net bluetooth 32feet obex

我有一个项目,其中卡拉OK机器记录用户,然后让用户通过蓝牙与他/她的手机连接到机器并下载他们的录音。经过大量的阅读,示例,文档我尝试使用 32feet (卡拉OK是用 C#.NET 编写的),但我找到发送文件的唯一方法是使用< strong> ObexWebResponse ,有些手机没有这项服务:

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有替代品吗?与每部手机兼容的东西,或者与不兼容的设备混合使用OBEX的方法。

我使用原生Windows应用程序(控制面板&gt;设备和打印机&gt;蓝牙设备&gt;'设备名称'&gt;发送文件)来发送文件,所以这不是真的与硬件相关的问题,即使在其他语言或库中有任何解决方案,请指导我如何实现这一目标。

提前感谢您的阅读时间!

1 个答案:

答案 0 :(得分:0)

还没有采用这种方式来解决我目前的PC /蓝牙通信问题(目前使用32feet和C#)但是我确实遇到了一个用于C ++的本地Microsoft库:https://msdn.microsoft.com/en-us/library/windows/desktop/aa362932%28v=vs.85%29.aspx

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