使用startScan执行BLE扫描时(onFoundBLEDevice,onBLEScanError)。首先,是将参数发送到onFoundBLEDevice单个设备还是设备列表?如果答案是"单个设备"当执行扫描时,当地附近有多个BLE设备会发生什么?
其次,由于我的目标是从我自己的智能手机(已配对并连接到我的智能手表)中检索电池电量,如何判断我的扫描设备中找到的设备是哪一个?连接的?或者我甚至需要执行扫描?有没有另一种方法来检索设备对象,然后获得电池服务0x180F,然后电池电平特性,0x2a19?换句话说,我想确保我检索的电池电量是我的电话,而不是我旁边的朋友。
更新:我的智能手机是运行Android 4.3的三星Galaxy S3,我的智能手表是运行Tizen 2.3.1的Samsung Gear S2。我使用的是Tizen蓝牙API。
答案 0 :(得分:0)
每次找到设备时都会调用BluetoothLEScanCallback(在您的情况下为onFoundBLEDevice)。 (对于附近的3个设备 - > 3个电话)
当我通过'Samsung Gear'应用程序连接移动设备时,我已经从我的设备扫描了附近的设备。不,没有办法区分通过Gear Manager连接的特定Mobile与其他设备。因此,您无法在此过程中找到连接的设备。 (除非您正在开发个人使用的应用程序,在这种情况下,您可以硬编码您的移动设备的UUID)
三星为此目的提供'附件'SDK。您使用Accessory SDK交换的任何数据都会通过Samsung Gear向您提供特定“已连接”设备的信息。查看附件SDK部分中的API参考,编程指南和Android-End示例应用程序以及Tizen-End示例应用程序。