在hp笔记本电脑上运行蓝牙相关代码时出错

时间:2015-01-17 16:44:47

标签: c# python bluetooth 32feet

我在我的惠普笔记本电脑(probook 4320s,Windows 7 64位)上尝试使用蓝牙时遇到了一些麻烦。我猜这是由于兼容性差的驱动程序,但我无法自己解决这个问题。

我试图让它在python和c#上工作。在Python上,使用pybluez:

import bluetooth
print bluetooth.discover_devices()

在C#上,使用32feet库:

BluetoothClient bc = new BluetoothClient();
BluetoothDeviceInfo[] array = bc.DiscoverDevices();

我将描述我自己迄今为止所执行的步骤,以便解决这个问题,以便你们可以得到更清晰的图片:

  1. 确保蓝牙适用于笔记本电脑 - 实际上它能够在“我的蓝牙”笔记本电脑中找到设备。
  2. 运行python代码,得到IOError:未检测到蓝牙适配器。
  3. 运行C#代码,得到一个PlatformNotSupportedException。
  4. 发现我当前的驱动程序Ratlink Motoroal BC4蓝牙3.0 + HS适配器出现在设备管理器的蓝牙无线电下可能不支持这些操作所以我选择更新Windows设备管理器上的驱动程序并选择“通用蓝牙适配器”。此时,我在设备管理器的蓝牙无线电选项卡下同时拥有“通用蓝牙适配器”和“Microsoft蓝牙枚举器”。
  5. 运行python代码,同样的错误。
  6. 运行c#代码,没有异常,但找不到任何设备。 DiscoverDevices的结果总是空的。
  7. 也无法在笔记本电脑上的“我的蓝牙”文件夹中找到蓝牙设备。获取“蓝牙无线电设备不可用”。
  8. 在随机卸载和安装后,我意外地在设备管理器中获得了“蓝牙设备”子弹和蓝牙无线电子弹。第一个拥有Motorolla驱动程序,另一个拥有Microsoft蓝牙枚举器。与(5)和(6)相同的错误仍然存​​在。
  9. 我一直在摆弄惠普网站上的不同司机而没有任何运气。此外,该代码适用于两台非惠普笔记本电脑,并且在不同的惠普笔记本电脑(一种展馆类型)上出现故障。我注意到其他笔记本电脑只有蓝牙无线电子弹,其中包含本机蓝牙设备和微软枚举器设备。

    惠普笔记本电脑上有蓝牙编程的希望吗?我做错了什么?

    提前谢谢你们

1 个答案:

答案 0 :(得分:0)

首先,您应该知道有几种不同的Bluetooth stacks。 例如,有时在具有Toshiba堆栈的计算机上正常运行的代码在具有Microsoft堆栈的计算机上无法正常运行。

其次,我建议你使用32Feet library

InTheHand.Net.Sockets.BluetoothClient _BTClient = new InTheHand.Net.Sockets.BluetoothClient();
_BTClient.InquiryLength = new TimeSpan(0, 0, 5);
InTheHand.Net.Sockets.BluetoothDeviceInfo[] _clientDevices = _BTClient.DiscoverDevices(20 ,authenticated, remembered, unknown);
_BTClient.Dispose();
_BTClient = null;

我正在使用不能免费使用的BTFramework。 祝你好运