我想查找没有已配对设备的蓝牙设备。但是我的python脚本显示了我配对的设备上的蓝牙设备。如何只过滤打开的设备并忽略电脑中的配对设备,而不删除它们。
这是我的剧本
import bluetooth
def search():
devices = bluetooth.discover_devices(duration=1, lookup_names = True)
return devices
if __name__=="__main__":
while True:
results = search()
if (results!=None):
for addr, name in results:
print ("{0}".format(name))
print ("{0}".format(addr))
我不认为你可以通过pybluez API做到这一点,它甚至还没有处于开发阶段。如果我们查看API,您可以将flush\u cache设置为False,不查看以前发现的设备。但它同样显示成对的设备。
def discover_devices (duration=8, flush_cache=True, lookup_names=False,
lookup_class=False, device_id=-1, iac=IAC_GIAC):
但也在下面,我看到:
try:
results = _bt.hci_inquiry (sock, duration=duration, flush_cache=True,
lookup_class=lookup_class, device_id=device_id,
iac=iac)
您可能想尝试将其设置为False,然后尝试一下。
我不想发现配对设备似乎也无法通过D-BUS API实现。如果我们看看适配器api。txt有一个void SetDiscoveryFilter(dict filter)方法,但它不能满足您的需要。
另一种解决方法是使用DBUS API获取设备是否被发现的信息,如果未配对,则列出一些列表,然后您将拥有一个很好的未配对设备列表。如果您的域Linux,您可能需要检查缓存的保存位置。
我正在尝试枚举所有与我的设备配对的蓝牙设备。在设置中,我可以查看配对的设备,但以下代码不返回任何项目: 我看过这篇和其他使用这种方法的帖子,但我似乎无法让它发挥作用。 我在Manifest.xml有以下权限: 此外,如果我将其中一个已配对的设备置于发现模式并进行扫描,则该设备会以已配对的状态返回。如果我检查: 从扫描中,它返回true。 我做错了什么或不理解什么?
我正在开发一款连接蓝牙物联网设备的Flitter应用程序。我正在使用Flatter_blue图书馆。该库允许扫描附近的蓝牙设备。基于该扫描,您可以“连接”到设备。没有与设备配对的概念。 根据我以前在手机上使用蓝牙的经验(连接到我的汽车和蓝牙扬声器时),我必须在Android操作系统上配对设备。 我很好奇,从高层次上讲,配对设备和连接设备之间有什么区别。此外,更具体地说,在操作系统内配对设备与扫描并
ap.getBluetoothDevices(OPTION | services | service, CALLBACK) 获取所有已发现的蓝牙设备,包括已经和本机处于连接状态的设备。可直接传入一个数组作为 OPTION.services 参数。也可直接传入一个字符串作为 OPTION.services 的第一项。 OPTION 参数说明 名称 类型 必填 描述 services Array 否
问题内容: 我正在尝试使用Linux上的Python 列出所有附近的/可发现的蓝牙设备, 包括已经配对的 蓝牙设备。 我知道如何使用其地址列出设备的服务,并且可以成功连接: 如果我不指定任何条件,则阅读PyBluez文档时,我希望附近的任何设备都能显示出来: “如果未指定任何条件,则返回检测到的所有附近服务的列表。” 我现在唯一需要的是能够列出已经配对的设备,无论它们是打开,关闭,附近还是不打开。
deviceName String deviceId String
我有一个通过蓝牙连接的配对设备列表。但是我想把它们归类为iPhone或Android。这怎么可能呢?