Android 读取范围内所有BLE设备的RSSI值

Android 读取范围内所有BLE设备的RSSI值,android,bluetooth-lowenergy,estimote,rssi,Android,Bluetooth Lowenergy,Estimote,Rssi,我正在做一个应用,需要测量所有BLE beaconsestimote的信号强度,以便通过神经网络进行处理,我想将该RSSI存储在一个数组中,该数组将发送到用C实现的服务器,我已经用wifi实现了它,并想获得类似的结果,这是我的wifi代码: ListaWifi = ObjWifi.getScanResults(); rssi = new int[2]; for (int i = 0; i < 2; i++) { rssi[i] = ListaWifi.ge

我正在做一个应用,需要测量所有BLE beaconsestimote的信号强度,以便通过神经网络进行处理,我想将该RSSI存储在一个数组中,该数组将发送到用C实现的服务器,我已经用wifi实现了它,并想获得类似的结果,这是我的wifi代码:

 ListaWifi = ObjWifi.getScanResults();
    rssi = new int[2];
    for (int i = 0; i < 2; i++) {
        rssi[i] = ListaWifi.get(i).level;
    }
我还希望数据始终具有相同的顺序:

int[] ret = new int[3];
for (int i = 0; i < tam; i++) {
            switch ((BSSID[i])) {
                case "9c:d6:43:94:ee:3f":
                    ret[0] = rssi[i];
                    break;
                case "9c:d6:43:94:f1:63":
                    ret[1] = rssi[i];
                    break;
                case "9c:d6:43:94:f1:99":
                    ret[2] = rssi[i];
                    break;
                default:
                    break;
            }
  }

是否有一种方法可以持续监控BLE信标的数据,并以与wifi相同的方式进行存储???

我认为RSSI值包含在广告包中。我不知道任何C,因此我无法帮助您从数据包中获取该值,但这应该是可能的

然而,你的第二条规定,它们总是以相同的顺序出现,这将需要一些混乱。这些广告包在空中广播,没有特定的顺序,而且多次信标不相互通信,也不协调它们的包。您可以做的一个解决方案是监听一段固定的时间,收集所有的ad数据包,然后按地址对它们进行排序。您可能会从同一地址获得多个数据包,因此可能会平均RSSI值。我不知道你为什么要求他们在同一个顺序,所以这可能不是最好的解决方案,你没有说的问题