Android使用蓝牙检测智能手机

时间:2018-06-14 14:08:21

标签: android bluetooth bluetooth-lowenergy

我正在开发一款Android应用程序,需要检测运行该应用程序的设备附近的智能手机数量。为此,我有一个计划的蓝牙BLE扫描的工作实现。我正在检测附近的BLE设备没有问题,但似乎无法在扫描结果中找到任何智能手机。

我的问题是:我们可以在Android上使用BLE扫描检测到其他智能手机吗? (具体而言;如果我们无法控制其他智能手机的设置)。

我尝试使用以下蓝牙库扫描BLE设备:

为了尝试检测智能手机,我尝试了以下方法:

  • 尝试在启用了蓝牙的特定辅助Android / iOS设备的扫描结果中查找蓝牙(mac)地址或设备名称。这包括在辅助设备上打开蓝牙设置,因为这是从智能手机到智能手机的配对工作方式。
  • 通过将蓝牙设备类别与the smarthphone device classthe major-class phone进行比较,检查扫描结果的“(主要)设备类别。

使用设备进行测试:

  • 摩托罗拉G3 - Marshmallow
  • Motorla G6 plus - Oreo
  • 三星Galaxy S4 - Kitkat
  • 三星Galaxy S6 - Marshmallow
  • 华为P8 lite - Nougat

其他:蓝牙,bluetooth_admin和access_fine_location(运行时)权限都得到了处理。

我似乎无法检测到我测试过的设备的预期mac地址,也没有检测到任何具有“手机类型”设备类的设备。偶尔遇到的唯一设备类是7936(1F00),也称为“未分类”。否则为0.欢迎提出有关此问题的任何建议或信息。

1 个答案:

答案 0 :(得分:1)

借助BLE和经典蓝牙,Android将发现当前“可发现”的附近未配对的蓝牙设备。问题在于,即使附近的设备启用了蓝牙,它们实际上也无法“发现”,除非它们处于Bluetooth Setting page上。

因此,就您而言,似乎不太可能在设备附近检测到未配对的设备。