2017-01-06 4 views
0

Хорошо, так что это может быть очень глупый вопрос, но я честно не могу понять, что здесь происходит, я пытаюсь сравнить текущий SSID с другой переменной:String.replace возвращает дополнительные кавычки

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); 
WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 
String SSID = wifiInfo.getSSID().replace("SSID: ",""); 
if(myWifi.equals(SSID)){ 

} else { 

} 

Теперь, как известно, wifiInfo.getSSID() возвращает строку, такую ​​как SSID: wifi1. Скажем, myWifi - это значение wifi1, если оно сравнивается с wifiInfo.getSSID(), оно скажет, что оно ложно, потому что это так, поэтому я пытаюсь заменить часть SSID: на что-то, надеясь получить только имя SSID (wifi1), поэтому строки можно сравнить и вернуть true. Но с использованием вышеприведенного кода значение SSID имеет значение "wifi1", поэтому приложение говорит, что оно неверно, потому что "wifi1" - это не то же самое, что и wifi1.

Почему это происходит?

+0

для меня возвращает строку типа «wifi1» с двойными кавычками. замените их – firegloves

ответ

3

Простое использование .replaceAll("\"",""); после снятия части SSID. Таким образом, вы будете иметь:

String SSID = wifiInfo.getSSID().replace("SSID: ","").replaceAll("\"",""); 

Это удалит все " независимо от того, где они находятся в строке.

+1

Следует отметить также, что в некоторых версиях Android SSID имеет дополнительные кавычки, а на некоторых версиях это не так. См. Здесь: http://stackoverflow.com/questions/13563032/jelly-bean-issue-wifimanager-getconnectioninfo-getssid-extra –

+0

Ну, это определенно работает. Не знаю, почему замена добавит кавычки. – user1676874

+1

Ответ, связанный с @StephenRuda, должен работать и на самом деле. –

-1

Я бы использовал String.Contains для проверки нужной строки.

bool wifiNameExists = wifiInfo.Contains("wifi1") 

Вы можете заменить «конечно wifi1» со строкой, содержащей имя Wi-Fi, который вы хотите найти.

+0

Правда. В фрагменте кода OP вы можете использовать: 'if (SSID.contains (myWifi))'. Но тогда, если вы хотите сохранить SSID, вам лучше удалить '' ', как описано в моем ответе выше. –

+0

@AlexNewman не просто это - с этим ответом« hellogigglehello »будет принят, даже если вы ищете Wi-Fi также назвал «привет». Кроме того, я считаю, что это должен быть wifiInfo.getSSID(). –

Смежные вопросы