2014-04-02 2 views
7

Ho implementato GCM nella mia applicazione e la notifica push funziona correttamente? Ma ho dei requisiti specifici in cui I (il mio server) vuole sapere sullo stato del dispositivo Android (è online o offline).Come ottenere lo stato di dispositivo Android (offline o online) tramite GCM?

Domanda: 1. È possibile verificare lo stato dei dispositivi Android (offline o online) semplicemente inviando un messaggio GCM o qualcosa del genere?

  1. L'unica opzione che è venuto nella mia mente è “creare” servizio in background in un dispositivo Android e si creerà in corso connessione socket con il server per aggiornare lo stato su intervallo di tempo predefinito (5/10 min intervallo) . Ma l'intervallo di tempo di pooling @ fix non è la soluzione migliore - ed è per questo che cercano altre alternative.

Qualsiasi puntatore o aiuto sarebbe molto apprezzato.

Grazie.

risposta

-4

Se quello che volevi dire è che vuoi sapere che la tua rete telefonica è accesa o spenta, allora penso che il codice muggito potrebbe esserti utile.

questo ti dirà che il tuo telefono è in modalità Air Plane o no, significa che la rete è spenta o accesa.

private static boolean isAirplaneModeOn(Context context) { 

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

} 

Bellow controlli code Tempo si sta conncected a imternet o meno.

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 palese

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