es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Monitor de Red de GLib: disponibilidad de red inicial incorrecta en la aplicación Flatpak.

Estoy empaquetando una aplicación Flatpak que verifica la disponibilidad de red al inicio. Desde que cambiamos a empaquetar con Flatpak, he notado que el GLib.NetworkMonitor inicialmente reporta que no hay disponibilidad de red, pero muy poco después se emite la señal network-changed para indicar que hay una conexión de red.

Esto parece estar relacionado con Flatpak, tal vez debido a que el sandbox inicialmente no tiene conexión.

No veo este comportamiento documentado en ningún lugar, así que no quiero asumir que siempre habrá una señal emitida inicialmente.

public class MyApplication : Gtk.Application {

<pre><code>private bool is_network_available;

construct {
    // Después de que la aplicación se haya iniciado completamente, se inicialice la interfaz de usuario, etc., esto se activa y reporta un cambio a `true`
    network_monitor.network_changed.connect (() =&gt; {
        debug (&quot;Cambio en disponibilidad de red: %s&quot;, network_monitor.get_network_available ().to_string ());
    });
}

protected override void activate () {
    // Verificar el estado inicial de la conexión de red
    is_network_available = network_monitor.get_network_available ();
    debug (is_network_available); // Reporta false
}
</code></pre>

}

¿Es esto esperado para aplicaciones empaquetadas con Flatpak? ¿Existe un método más confiable para realizar esta verificación al inicio?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en gtk, glib, vala, gio y Flatpak, es común que GLib.NetworkMonitor informe inicialmente de que no hay disponibilidad de red, pero que muy poco después emita la señal “cambio-en-red” para indicar que hay una conexión de red al empaquetar una aplicación Flatpak. Esto puede deberse a que el sandbox no tenga una conexión al principio y no esté documentado en ningún lugar. Si bien este comportamiento es esperado para aplicaciones empaquetadas con Flatpak, no hay un método más confiable para realizar esta verificación al inicio, y se debe utilizar la señal “cambio-en-red” para detectar cambios en la disponibilidad de la red.

Comments are closed.