0

有几个人询问了有关获取 SSID 的问题,所有这些问题都只是部分工作。根据 Android API wifiInfo.getSSID() 应该返回一个字符串,但无论我做什么,if 语句都会返回 false。我想检查我的手机是否连接到“DieKantankys”

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
    WifiInfo wifiInfo = wifiManager.getConnectionInfo();

    //Log.d("wifiInfo", wifiInfo.toString());
    //Log.d("NetworkId",wifiInfo.getNetworkId());

    if(wifiInfo.getSSID()=="DieKantankys"){
        setContentView(R.layout.group_choose_activity);
    }else{
        setContentView(R.layout.not_connected_to_scouting_wifi_error);
    }

}

我究竟做错了什么?

4

1 回答 1

4

但无论我做什么,if 语句都会返回 false。

首先,当你比较字符串时,你必须使用equals()因为你想比较值而不是引用:

if (wifiInfo.getSSID().equals("DieKantankys")) {
   // do your stuff
}

因此,它对您不起作用。您当前的场景将始终返回false,因为您将 String 引用与==

注意:有时使用equalsIgnoreCase()非常“方便” - 使用此方法时,比较不区分大小写。

于 2014-04-13T19:47:41.873 回答