某些手机不支持C#32英尺obex蓝牙
本文关键字:英尺 obex 蓝牙 C#32 不支持 手机 | 更新日期: 2024-09-24 08:24:39
我有一个项目,卡拉OK机记录用户,然后让用户用手机通过蓝牙连接到机器并下载他们的录音。经过大量的阅读、示例和文档,我尝试使用32英尺(卡拉OK是用C#.NET编写的),但我发现发送文件的唯一方法是使用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应用程序(控制面板>设备和打印机>蓝牙设备>"设备名称">发送文件)来发送文件,所以这实际上不是一个与硬件相关的问题,如果有任何解决方案,即使是其他语言或库,请告诉我如何实现这一点。
提前感谢您的阅读时间!
由于我目前的PC/蓝牙通信问题(目前使用32英尺和C#),我还没有采用这种方法,但我确实遇到了一个用于C++的本地Microsoft库:https://msdn.microsoft.com/en-us/library/windows/desktop/aa362932%28v=vs.85%29.aspx
正如我所说,我自己没有尝试过,所以不能保证,但它可能值得一看?