我試圖顯示最強的wifi接入點範圍內的availbe是在我的xml文件中,但我得到了類似的東西「,能力:[WPA-PSK-CCMP] [WPA2-PSK-CCMP] [WPS] [ ESS],等級:-59,頻率:2462,時間戳:1083973302545,距離:?(cm),distancceSD:?(cm)「作爲輸出,如果我改變」textWifi.setText(a.toString());到「textWifi.setText(buf.toString());」那麼我正在獲得所有可用的接入點。Android:選擇可用的最強無線接入點?
如何在「calculateBestAp()」方法中傳遞「buf」以使其工作?
我很感激任何幫助。
\t private void check_wifi_available() {
\t \t WifiManager wifiManager = (WifiManager) this
\t \t \t \t .getSystemService(this.WIFI_SERVICE);
\t \t WifiInfo info = wifiManager.getConnectionInfo();
\t \t final List<ScanResult> results = wifiManager.getScanResults();
\t \t if (results != null) {
\t \t \t // StringBuffer buf = new StringBuffer();
\t \t \t StringBuilder buf = new StringBuilder();
\t \t \t for (int i = 0; i < results.size(); i++) {
\t \t \t \t String ssid = results.get(i).SSID;
\t \t \t \t if (ssid.startsWith("KD")) {
\t \t \t \t \t buf.append(ssid + "\n");
\t \t \t \t }
\t \t \t }
\t \t \t
\t \t \t ScanResult a = calculateBestAP(results);
\t \t \t textWifi.setText(a.toString());
\t \t }
\t }
\t private ScanResult calculateBestAP(final List<ScanResult> results) {
\t \t ScanResult bestSignal = null;
\t \t for (ScanResult result : results) {
\t \t \t if (bestSignal == null
\t \t \t \t \t || WifiManager.compareSignalLevel(bestSignal.level,
\t \t \t \t \t \t \t result.level) < 0)
\t \t \t \t bestSignal = result;
\t \t }
\t \t return bestSignal;
\t }
你可能想澄清的問題,是你綁傳遞BUF到calculateBestAP或textWifi.setText如果是後者,buf.toString()應該罰款。 – faljbour 2015-04-03 23:49:28
我想通過「buf」到「calculateBestAP」來獲得以「KD」開頭的最強wifi接入點。 – 2015-04-04 08:23:09
現在計算BestBestAP工作方式,它是否返回最佳信號 – faljbour 2015-04-04 08:35:52