2014-04-02 5 views
7

Ich habe GCM in meiner Anwendung implementiert und Push-Benachrichtigung funktioniert gut? Aber ich habe spezifische Anforderungen, wo ich (mein Server) über den Android-Gerätestatus (d. H. Online oder offline) wissen möchte.Wie bekomme ich Android Gerätestatus (Offline oder Online) mit GCM?

Frage: 1. Gibt es eine Möglichkeit, Android-Gerätestatus (Offline oder Online) durch Senden von GCM-Nachricht oder etwas?

  1. Die einzige Option, die in meinem Kopf kam, ist Hintergrunddienst in Android-Gerät „Erstellen“ und es wird mit Server-on-going-Socket-Verbindung erstellen Status auf vordefinierten Zeitintervall (10.05 min Intervall) zu aktualisieren . Aber Pooling @ Fix Zeitintervall ist nicht die beste Lösung - und deshalb suchen Sie nach anderen Alternativen.

Jeder Zeiger oder Hilfe würde sehr geschätzt werden.

Vielen Dank.

Antwort

-4

Wenn Sie wollen, dass Sie wissen, dass Ihr Telefonnetzwerk ein- oder ausgeschaltet ist, dann könnte der folgende Code hilfreich für Sie sein.

Dies wird Ihnen sagen, Ihr Telefon ist im Airplane-Modus oder nicht, bedeutet Netzwerk ist ausgeschaltet oder eingeschaltet.

private static boolean isAirplaneModeOn(Context context) { 

    return Settings.System.getInt(context.getContentResolver(), 
      Settings.System.AIRPLANE_MODE_ON, 0) != 0; 

} 

Der folgende Code überprüft, ob Sie mit dem Internet verbunden sind oder nicht.

private boolean isNetworkConnected() { 
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo ni = cm.getActiveNetworkInfo(); 
    if (ni == null) { 
    // There are no active networks. 
    return false; 
    } else 
    return true; 
} 

in manifest

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />