1

我在尝试在我的 hp 笔记本电脑(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: No Bluetooth adapter detected。
  3. 运行 C# 代码,得到一个 PlatformNotSupportedException。
  4. 发现我当前的驱动程序 Ratlink Motoroal BC4 蓝牙 3.0+HS 适配器出现在设备管理器的蓝牙无线电下可能不支持这些操作,所以我选择更新 Windows 设备管理器上的驱动程序并选择“通用蓝牙适配器”。此时我在设备管理器的蓝牙无线电选项卡下同时拥有“通用蓝牙适配器”和“微软蓝牙枚举器”。
  5. 运行python代码,同样的错误。
  6. 运行 c# 代码,没有异常,但是没有找到设备。DiscoverDevices 的结果始终为空。
  7. 也无法在笔记本电脑的“我的蓝牙”文件夹中找到蓝牙设备。获取“蓝牙无线电设备不可用”。
  8. 随机卸载安装后,不小心在设备管理器中出现了“蓝牙设备”项目符号和蓝牙无线电项目符号。第一个包含摩托罗拉驱动程序,另一个包含 Microsoft 蓝牙枚举器。与 (5) 和 (6) 相同的错误仍然存​​在。

我一直在摆弄 hp 网站上的不同驱动程序,但没有任何运气。此外,该代码适用于两台非 hp 笔记本电脑,但在另一台 hp 笔记本电脑(凉亭类型)上失败。我注意到其他笔记本电脑只有蓝牙无线电子弹,其中包含本机蓝牙设备和 Microsoft 枚举器设备。

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

提前谢谢你们

4

1 回答 1

0

首先,您应该知道有几种不同的 蓝牙堆栈。例如,有时在具有东芝堆栈的计算机上完美运行的代码不会在具有 Microsoft 堆栈的计算机上正常运行。

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

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。祝你好运

于 2015-01-18T13:57:05.623 回答