WifiManager.getScanResults()没有在Android Jelly Bean上提供SSID

时间:2014-09-24 12:02:26

标签: android android-4.2-jelly-bean android-4.3-jelly-bean

我正在尝试获取最新接入点扫描的结果。所以使用Android文档WifiManager in Android Documentation

中提供的此方法

在其他所有设备和版本中,它工作正常,只是在Android Jelly Bean上给出问题。 它没有在从此方法检索的结果中提供SSID名称。

我在很多地方都读到有双引号的问题" "在果冻豆中,是的,这是真的,因为我已经检查了当前连接的wifi名称,它被包含在" ",所以我只删除了开头和结尾的引号,它给了我好名字。 但是在从WifiManger.getScanResults()获取结果时,它甚至没有在检索到的结果中给出SSID名称。

这是代码

    wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);

    if (wifi.isWifiEnabled() == false) { // If Wifi is off, Switch it on
        wifi.setWifiEnabled(true);
    }

    receiverWifi = new WifiReceiver();
    registerReceiver(receiverWifi, new IntentFilter(
            WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
    wifi.startScan();
    results = wifi.getScanResults();

    for(int i=0 ; i<results.size(); i++){       
        String reslt = results.get(i).toString();   
        Log.d("TAG", "wifi ->>>" + reslt);
    }

任何人都可以帮我解决这个问题吗?

先谢谢。

2 个答案:

答案 0 :(得分:0)

之前的Android版本将SSID括在引号中,而后期Jellybean却没有 http://developer.android.com/reference/android/net/wifi/WifiInfo.html#getSSID()

答案 1 :(得分:0)

我找到了替代方法,我将粘贴下面的代码

public class MainActivity extends Activity {

WifiManager mWifiManager;
String Available_Networks="";
TextView ShowSSIDs;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mWifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
    //mWifiManager.startScan();
    ShowSSIDs = (TextView) findViewById(R.id.ssId);
    List<WifiConfiguration> mScanResults = mWifiManager.getConfiguredNetworks();
    for(int x=0; x<mScanResults.size();x++){
        Available_Networks+=mScanResults.get(x).SSID+"\n";
    }
    ShowSSIDs.setText(Available_Networks);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}