Android WifiInfo # getSSID (): есть ли способ понять, есть ли у SSID двойные кавычки или они созданы в Android? - PullRequest
0 голосов
/ 13 ноября 2018

Согласно документации метода getSSID:

Возвращает идентификатор набора услуг (SSID) текущей сети 802.11. Если SSID может быть декодирован как UTF-8, он будет возвращен в двойных кавычках. В противном случае он возвращается в виде строки шестнадцатеричных цифр. SSID может быть {@code null}, если в данный момент нет подключенной сети.

Исходный код этого метода в некоторой степени соответствует документации (кроме случая null), поэтому я не буду прикреплять его здесь как фрагмент кода, , но здесь он предназначен для API 21 .

Кажется, я могу просто удалить двойные коды, но согласно этому вопросу SO , getSSID() метод WifiInfo можно сказать, что реализация может варьироваться в зависимости от версии Android .

Повседневные источники о SSID отметить, что это буквенно-цифровой , но я нашел спорное утверждение: согласно этому источнику SSID может содержать двойные кавычки , так что это действительный символ.

В результате, SSID в кодировке UTF-8 может быть заключен в двойные кавычки или не быть .

Вопрос: есть ли здесь надежный способ определить, содержат ли SSID двойные кавычки как в конце, так и в начале, или это происходит из getSSID реализации Android?

1 Ответ

0 голосов
/ 09 декабря 2018

WifiInfo.getSSID () возвращает String, поэтому вы можете использовать String.matches и String.replace для этого

Для обнаружения:

String ssid = "\"MYSSID\"";
Boolean matches = ssid.matches("^\".*\"$");
Log.v("Check quotes", "Matching " + matches);

Для удаления:

ssid = ssid.replace("\"", "");
...