【发布时间】:2012-11-26 22:09:03
【问题描述】:
我正在编写一个 android 应用程序,其目的是通过 wifi 指纹确定用户位置,为了做到这一点,我需要对当前网络进行非常频繁(尽可能频繁)的扫描,但我发现这样做的时间限制。
事实上,无论如何,我几乎可以每秒进行一次新的扫描,我想知道是否有办法加快速度。
关于该主题的过去问题(因为这个Android, wifi active scans)并没有真正有用。
代码如下:
public class WiFiScanReceiver extends BroadcastReceiver {
private static final String TAG = "WiFiScanReceiver";
private Main parent;
private ScanResult storedBest;
private String actualFileName;
private int nOfScans;
private long initialTime;
private FileSaver fs;
public WiFiScanReceiver(Main wifiDemo) {
super();
this.parent = wifiDemo;
storedBest = null;
actualFileName ="";
nOfScans = 0;
fs = new FileSaver(parent);
}
@Override
public void onReceive(Context c, Intent intent) {
List<ScanResult> results = parent.getWifiManager().getScanResults();
ScanResult bestSignal = null;
if(parent.isRecording()&& actualFileName!=""){
//Getting the fingerprint
}
if (parent.isRecording()) nOfScans ++;
parent.getWifiManager().startScan();
Log.d(TAG, "onReceive() message: " + message);
}
//VARIOUS GETTERs AND SETTERs
}
【问题讨论】:
-
你是如何获得用户位置的?我们可以看代码吗?
-
我打算通过将 wifi 指纹 (RSSI + BSSID) 与已知指纹数据库进行比较来获取位置。我将使用这种方法来提高基于设备传感器的定位过程的精度。我现在没有本地化过程的代码。
标签: android android-wifi wifimanager