#java #timestamp #wifi #rssi
Вопрос:
Я хотел бы реализовать приложения, с помощью которых я мог бы сканировать Mac-адрес Wi-Fi и получать его RSSI и метку времени. Например, первая метка времени даст мне все значения RSSI каждого Mac-адреса. Эти необнаруженные сигналы RSSI будут содержать пустые ячейки. Аналогично, следующая метка времени выдаст мне все сигналы RSSI для обнаруженного Mac-адреса. Ожидаемый CSV-файл должен быть ниже.
Однако, когда я сохранил файл, он дал мне такой результат. Кроме того, у меня возникли некоторые трудности с переносом значения Mac-адреса в CSV-файле из строки в столбец.
Вот код. `private void scanWifiResult() { Список wifiscan = WifiManager.getScanResults();
for (ScanResult scanning : wifiscan) { String macAddress = String.valueOf(scanning.BSSID); Float RSS = Float.valueOf(scanning.level); ArrayListlt;Floatgt; arrayOfRss = WifiNetworkWithRssi.get(macAddress); if (arrayOfRss == null) { arrayOfRss = new ArrayListlt;gt;(); WifiNetworkWithRssi.put(macAddress, arrayOfRss); scanDataList.add(new ScanData(macAddress, System.currentTimeMillis(), arrayOfRss)); scanDataList.add(new ScanData(macAddress, System.currentTimeMillis(), RSS)); } if (tagMotion == false amp;amp; arrayOfRss.size() gt; 1) RSS = (RSS arrayOfRss.get(arrayOfRss.size() - 1)) / 2; arrayOfRss.add(((int) ((RSS (RSS gt;= 0 ? 1 : -1) * 0.005f) * 100)) / 100f); long actualTime = System.currentTimeMillis() - TimeUnit.MILLISECONDS.convert(SystemClock.elapsedRealtimeNanos() - scanning.timestamp, TimeUnit.NANOSECONDS);
введите код здесь
String csvString = ""; for(ScanData scanData : scanDataList) { csvString = scanData.getBssid() "," scanData.getTimeStamp() "," TextUtils.join(",",scanData.getRssi()) "n"; csvString = scanData.getBssid() "," scanData.getTimeStamp() "," scanData.getLevel() "n"; file_writer.append(csvString); }