安卓&x27;s WifiInfo#getSSID():有没有办法理解SSID本身是否有双引号,还是由Android创建的双引号?

安卓&x27;s WifiInfo#getSSID():有没有办法理解SSID本身是否有双引号,还是由Android创建的双引号?,android,android-wifi,ssid,Android,Android Wifi,Ssid,根据getSSID方法的文档: 返回当前802.11网络的服务集标识符(SSID)。如果SSID可以解码为UTF-8,则返回时会用双引号括起来。否则,它将作为十六进制数字字符串返回。如果当前没有连接网络,SSID可能为{@code null} 此方法的源代码在某种程度上与文档相符(除了nullcase),因此我不会将其作为代码片段附加在这里 似乎我可以删除双重代码,但根据getSSID()WifiInfo的方法,可以说的实现在android版本之间可能有所不同 关于SSID的非正式来源提到它是字

根据
getSSID
方法的文档:

返回当前802.11网络的服务集标识符(SSID)。如果SSID可以解码为UTF-8,则返回时会用双引号括起来。否则,它将作为十六进制数字字符串返回。如果当前没有连接网络,SSID可能为{@code null}

此方法的源代码在某种程度上与文档相符(除了
null
case),因此我不会将其作为代码片段附加在这里

似乎我可以删除双重代码,但根据
getSSID()
WifiInfo的方法,可以说的实现在android版本之间可能有所不同

关于SSID的非正式来源提到它是字母数字的,但我发现了一个有争议的说法:SSID可以包含双引号,因此它是一个有效字符

因此,UTF-8编码的SSID可以用双引号括起来,也可以不用双引号括起来

问题:这里有一种可靠的方法来确定SSID是否在结尾和开头都包含双引号,或者它来自android的
getSSID
实现吗?

要检测:

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

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