ConnectivityManager.CONNECTIVITY_ACTION bekommen Netzwerk disconected von API >= 14?

Ich brauche, um das Netz von dem Gerät getrennt wurde.

Nun benutze ich:

NetworkInfo ni =intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);

Und prüfen:

ni.isConnected()

wenn das false zurückgibt, ni - ist das Netzwerk aus, das das Gerät getrennt wurde.

Aber ConnectivityManager.EXTRA_NETWORK_INFO ist veraltet in der API-14. Google sagt, verwenden getActiveNetworkInfo (), um Netzwerk-Informationen. Aber getActiveNetworkInfo() gibt immer Netz, mit dem das Gerät verbunden ist, jetzt (isConnected() muss true zurückgeben)!

Wie bekomme ich die Netzwerk-Informationen für die Netzwerk-Gerät getrennt wird, ohne mit ConnectivityManager.EXTRA_NETWORK_INFO?

Sertorio Noronha, wenn ich getActiveNetworkInfo() erhalte ich nur das Netzwerk mit dem ich verbunden bin, jetzt! Aber ich brauche, um das Netzwerk, von dem ich getrennt wurde.

ConnectivityManager cm = (ConnectivityManager)
    context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo n1 = cm.getActiveNetworkInfo();
Log.d("tets", String.format("%s: %s", n1.getTypeName(), n1.isConnected()));

Wenn ich die Verbindung vom WI-FI und eine Verbindung zu 3G in der log:

mobile: true
mobile: true

Wenn ich die Verbindung von 3G und die Verbindung zum WI-FI log-in:

WIFI: true
WIFI: true
WIFI: true

getActiveNetworkInfo gibt nur das Netzwerk angeschlossen jetzt, aber nicht das Netzwerk, von dem ich getrennt wurde.

Wenn ich veraltet Absicht.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO) im log sehe ich:

Wenn ich die Verbindung vom WI-FI und eine Verbindung zu 3G:

WIFI: false
mobile: true

Wenn ich die Verbindung von 3G und eine Verbindung zu WI-FI:

mobile: false
WIFI: true

Möchte ich aber nicht verwenden deprecated api. Wie nutzen Sie die moderne api zum abrufen von Netzwerk, von dem ich getrennt wurde?

InformationsquelleAutor Nik | 2012-11-08
Schreibe einen Kommentar