Lidando com mudanças na conectividade da Internet no Android
A questão centra-se na necessidade de um receptor de transmissão que possa monitorar mudanças na conectividade com a Internet, como o o código existente detecta apenas alterações de conectividade.
Para resolver isso, aqui está uma abordagem alternativa:
public class NetworkUtil {
public static final int TYPE_WIFI = 1;
public static final int TYPE_MOBILE = 2;
public static final int TYPE_NOT_CONNECTED = 0;
public static int getConnectivityStatus(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null) {
if (activeNetwork.getType() == ConnectivityManager.TYPE_WIFI)
return TYPE_WIFI;
if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE)
return TYPE_MOBILE;
}
return TYPE_NOT_CONNECTED;
}
}
Este método determina se o dispositivo está conectado a WiFi ou dados móveis.
public class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
int status = NetworkUtil.getConnectivityStatus(context);
if ("android.net.conn.CONNECTIVITY_CHANGE".equals(intent.getAction()) {
if (status == NetworkUtil.TYPE_NOT_CONNECTED) {
// Handle loss of internet connectivity
} else {
// Handle restoration of internet connectivity
}
}
}
}
Este BroadcastReceiver monitora mudanças no estado de conectividade e aciona ações com base no status atual. Lembre-se de incluir as permissões apropriadas e registrar o receptor em seu AndroidManifest.xml:
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3