2010-06-25 3 views
2

Im essayant de faire une application Android que chaque fois qu'un utilisateur se connecte à un wifi, l'application envoie une requête http à mon serveur, plus tard en utilisant le serveur de notification push envoie quelques msgs à l'utilisateur. mais ici j'ai un problème: comment faire fonctionner cette application en arrière-plan et aussi comprendre si le téléphone est connecté à un wifi, cela signifie que même si l'applcation est fermée, il faut être conscient et chaque fois que le téléphone est connecté à un requête http. MerciAndroid: chaque fois que le téléphone est connecté au wifi envoyer une demande http

Répondre

8
private void registerForWifiBroadcasts() { 
    IntentFilter intentFilter = new IntentFilter(); 
    intentFilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION); 
    intentFilter.addAction(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION); 
    intentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); 
    mContext.registerReceiver(mReceiver, intentFilter); 
} 

@Override 
public void onReceive(Context context, Intent intent) { 
    final String action = intent.getAction(); 
    if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) { 
    handleNetworkStateChanged(
     (NetworkInfo) intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO)); 
    } else if (action.equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)) { 
    handleSupplicantConnectionChanged(
    intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED, false)); 
    } else if (action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) { 
    handleWifiStateChanged(intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, 
     WifiManager.WIFI_STATE_UNKNOWN)); 
    } 
} 

Et: Make it a Service

Questions connexes