Ble扫描设备的服务而不连接它

我想用BLE扫描一些设备。 我只想展示我的设备,所以我知道我得到了设备的名称,如果它是好的,我把它放在我的列表中。

if (device.getName().contains(DEVICE_NAME)) { mDevices.put(device.hashCode(), device); invalidateOptionsMenu(); } 

我的问题是,如果我更改设备的名称,则此检查将为false。 所以我看看是否有可能得到一些我添加的服务的uuid用不会改变的东西做检查。 唯一的方法是连接到设备上做device.connectGatt(this, false, mGattCallback); 和gatt之后我发现了服务但是,有没有可能从没有连接的设备发现一些服务?

我没有Android背景,但我了解BLE的工作原理。

特征设备名称,UUID = 0x2A00捆绑到GAP(通用访问),UUID = 0x1800 。 GAP始终在来自GATT服务器的广告包中广播。
GATT客户端应运行发现扫描以接收广告并解析广告包以接收GAP描述符。 当你这样做时,从技术上讲,这种连接尚未完成。

致:

如果我更改了我的设备的名称,那么这个检查将是假的,所以我看看是否有可能得到一些我添加的服务的uuid用不会改变的东西进行检查。

假设您希望应用程序仅连接到具有某些唯一标识的特定设备集。 比如说,由您配置的支持BLE的数字笔应该只连接到您的应用程序,而其他任何设备小工具都不能与您的应用程序连接。 如果这是用例,并且您可以自由地在BLE设备上配置GATT服务器,那么您可以在GATT服务器上的GAP服务中添加一些自定义特征,这些特性对于这些设备是唯一的。 不用说,您必须为该特性生成128位自定义UUID,并且UUID也将为您的应用程序所知。 这更像是一种解决方案。

请参阅蓝牙开发门户网站了解更多详情。