Android 仅查找特定于供应商的蓝牙设备

Android 仅查找特定于供应商的蓝牙设备,android,bluetooth,Android,Bluetooth,需要查找或搜索某些“特定于供应商”设备的蓝牙设备 “特定于供应商”意味着所有设备在其“MAC”地址中将具有相似的起始位 例如,我只想搜索MAC地址以12:34:56: 它应该只搜索特定系列的MAC地址并列出它们。我的解释将基于Android SDK中的BluetoothChat示例,希望这是可以的,否则我需要编写更多。如果你还没有看过BluetoothChat的例子,去看看吧,它真的很不错 如果您想使用不知道完整地址的设备,则必须使用BluetoothAdapter.startDiscovery

需要查找或搜索某些“特定于供应商”设备的
蓝牙设备

“特定于供应商”意味着所有设备在其“MAC”地址中将具有相似的起始位

例如,我只想搜索MAC地址以
12:34:56:


它应该只搜索特定系列的
MAC
地址并列出它们。

我的解释将基于Android SDK中的BluetoothChat示例,希望这是可以的,否则我需要编写更多。如果你还没有看过BluetoothChat的例子,去看看吧,它真的很不错

如果您想使用不知道完整地址的设备,则必须使用
BluetoothAdapter.startDiscovery()
进行完整查找,并在收到的地址中搜索您想要查找的地址


如果您知道要连接到的设备的完整地址,可以使用
BluetoothDevice=mBluetoothAdapter直接连接到此设备。getRemoteDevice(地址)

执行完整查找,然后使用


这可能是一种方式,谢谢。。有没有办法将BroadcastReceiver扩展到只搜索特定设备???@Jay3545据我所知,没有公开记录的方法可以做到这一点。过滤所有设备的列表有什么问题?如果速度有问题,您可以定期在后台执行查找,并维护按供应商ID筛选的设备列表。然后,当用户“搜索”设备时,只显示此列表的最新版本。
// Define Vendor ID Prefix
public static final String VENDOR_ID = "12:34:56:"

// First, do a full discovery...
BluetoothAdapter.getDefaultAdapter().startDiscovery()

//...

// Then, for each device returned from discovery...

if ( device.getAddress().startsWith(VENDOR_ID) ) {
  // Do Something
}