¿Hay un orden en cómo el sistema operativo Android muestra los nombres de las redes Wifi en la lista de Redes Disponibles?
Gracias
¿Hay un orden en cómo el sistema operativo Android muestra los nombres de las redes Wifi en la lista de Redes Disponibles?
Gracias
Las redes ofrecidas para conectarse están ordenadas por:
isPrimaryNetwork()
)getConnectedState()
)instanceof KnownNetworkEntry
)instanceof HotspotNetworkEntry
)getUpstreamConnectionStrength()
)canConnect()
)isSubscription()
)isSaved()
)isSuggestion()
)getLevel()
)getTitle()
)usando el WifiEntry.WIFI_PICKER_COMPARATOR
/**
* Comparador por defecto para ordenar WifiEntries en una lista de seleccionador de Wi-Fi.
*/
public static Comparator WIFI_PICKER_COMPARATOR =
Comparator.comparing((WifiEntry entrada) -> !entrada.isPrimaryNetwork())
.thenComparing((WifiEntry entrada) ->
entrada.getConnectedState() != CONNECTED_STATE_CONNECTED)
.thenComparing((WifiEntry entrada) -> !(entrada instanceof KnownNetworkEntry))
.thenComparing((WifiEntry entrada) -> !(entrada instanceof HotspotNetworkEntry))
.thenComparing((WifiEntry entrada) -> (entrada instanceof HotspotNetworkEntry)
? -((HotspotNetworkEntry) entrada).getUpstreamConnectionStrength() : 0)
.thenComparing((WifiEntry entrada) -> !entrada.canConnect())
.thenComparing((WifiEntry entrada) -> !entrada.isSubscription())
.thenComparing((WifiEntry entrada) -> !entrada.isSaved())
.thenComparing((WifiEntry entrada) -> !entrada.isSuggestion())
.thenComparing((WifiEntry entrada) -> -entrada.getLevel())
.thenComparing((WifiEntry entrada) -> entrada.getTitle());
en WifiPickerTracker::updateWifiEntries()
activeWifiEntries.sort(WifiEntry.WIFI_PICKER_COMPARATOR);
En zonas residenciales a menudo muchos de los criterios superiores serán iguales y la Fuerza de Conexión/Senal será el factor decisivo.
Las redes guardadas en Wi-Fi > Avanzado > Redes administradas están ordenadas alfabéticamente por título usando el WifiEntry.TITLE_COMPARATOR
public static Comparator TITLE_COMPARATOR =
Comparator.comparing((WifiEntry entrada) -> entrada.getTitle());
en SavedNetworkTracker::updateWifiEntries()
mSavedWifiEntries.addAll(mStandardWifiEntryCache);
Collections.sort(mSavedWifiEntries, WifiEntry.TITLE_COMPARATOR);
PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.