Ich habe ein BroadcastReceiver
erstellt, das auf ein CONNECTIVITY_CHANGE
-Ereignis wartet. Für den Moment drucke ich einfach die Aktion von Intent
aus, die den BroadcastReceiver
und seine Extras aufruft. Ich benutze ein Testtelefon in unserem Büro hier in Manila und die SIM-Karte kommt aus Dänemark. Wenn onReceive()
aufgerufen wird, wird dies in LogCat ausgedruckt:
Ich muss wissen, was der Wert von reason
ist, wenn das Roaming abgeht - könnte roamingOff
sein, wenn ich rate, aber ich kann es nicht sicher wissen, es sei denn, ich gehe nach Dänemark. Dies liegt daran, dass ich eine Aufgabe ausführen muss, wenn der Roaming-Dienst ausgeschaltet wird, und ich habe von LogCat festgestellt, dass das Ereignis CONNECTIVITY_CHANGE
aus anderen Gründen als dem Umschalten der Roaming-Modi ausgelöst wird. Oder gibt es eine bessere Möglichkeit zu erkennen, wenn Roaming ausgeschaltet ist?
Code für den Rundfunkempfänger:
%Vor%Manifesteintrag:
%Vor%Es gibt einen Unterschied zwischen Netzwerk-Roaming und Daten-Roaming.
Im Allgemeinen ermöglicht das Netzwerk-Roaming Ihrem Telekommunikationsunternehmen, Satelliten von Drittanbietern zu durchqueren, während Sie sich außerhalb des Landes befinden, damit Sie mit ihren Diensten verbunden bleiben können. Selbst wenn Sie Ihrer Telefongesellschaft bereits mitgeteilt haben, dass Sie sich für das Roaming im Netzwerk anmelden möchten, wird diese Option erst aktiviert, wenn Sie tatsächlich eine Verbindung über Telco-Satelliten von Drittanbietern herstellen. Dies geschieht nur, wenn Sie sich außerhalb des Landes befinden.
>Beim Daten-Roaming wird es Ihrem Gerät einfach erlaubt / untersagt, mobile Daten zu verbrauchen, während Sie sich im Netzwerk-Roaming-Modus befinden. Es ist mehr geräteabhängig und Sie können es einfach in der App Einstellungen des Telefons ein- oder ausschalten.
Kurz gesagt, wenn Sie das Netzwerk-Roaming erkennen möchten, verwenden Sie TelephonyManager.isNetworkRoaming()
. Wenn Sie überprüfen möchten, ob Datenroaming aktiviert oder deaktiviert ist, verwenden Sie Settings.Secure.getInt(getContentResolver(), Settings.Secure.DATA_ROAMING)
.
WICHTIG: Ich habe die folgenden Szenarien nicht persönlich getestet und bin mir nicht sicher, welchen Wert isNetworkRoaming()
zurückgibt.
isNetworkRoaming()
hier zurückgeben wird, weil Sie das Netzwerk-Roaming überhaupt nicht abonniert haben. Tags und Links android broadcastreceiver roaming