Кто-нибудь знает, почему метод getHiddenSSID всегда возвращает false, даже если Wifi скрыт? Поэтому я проверил реализацию, и похоже, что она будет проверена, только если SSID не является нулевым или пустым. Но в документации сказано
true, если эта сеть не передает свой SSID, поэтому для сканирования должен использоваться специфический для SSID пробный запрос.
Метод, который будет проверятьесли это скрытый ssid
* @return {@code true} if this network does not broadcast its SSID, so an
* SSID-specific probe request must be used for scans.
*/
public boolean getHiddenSSID() {
if (mWifiSsid == null) return false;
return mWifiSsid.isHidden();
}
public boolean isHidden() {
return isArrayAllZeroes(octets.toByteArray());
}
private boolean isArrayAllZeroes(byte[] ssidBytes) {
for (int i = 0; i< ssidBytes.length; i++) {
if (ssidBytes[i] != 0) return false;
}
return true;
}
Так что я действительно не уверен, что это ожидаемый результат, потому что, например, когда вы отключаете службы определения местоположения на android q, это всегда будет верно, но это не так.