有几个人提出了有关获取SSID的问题,所有这些问题都只能分散工作。根据Android API,wifiInfo.getSSID()应该返回一个字符串,但无论我做什么,if语句都返回false。我想检查一下我的手机是否已连接到#34; 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);
}
}
我做错了什么?
答案 0 :(得分:4)
但无论我做什么,if语句都会返回false。
首先,当您比较字符串时,您必须使用equals(),因为您想要比较值而不是引用:
if (wifiInfo.getSSID().equals("DieKantankys")) {
// do your stuff
}
出于这个原因,它确实不适合你。您当前的方案将始终返回 false ,因为您正在将字符串引用与==
注意:有时非常方便"使用equalsIgnoreCase() - 使用此方法,比较不区分大小写。