Nell'applicazione Android che sto progettando, il mio servizio deve essere attivo solo quando il dispositivo è connesso al router (ovviamente tramite WiFi). Sono davvero nuovo per Android, e quello che ho ottenuto finora mi ha portato per sempre ad Achieve, quindi spero davvero in alcuni suggerimenti.Android: il servizio Stop/Start dipende dallo stato WiFi?
Il servizio è impostato per l'avvio all'avvio del telefono. Inoltre, all'avvio dell'attività, controlla se il servizio è in esecuzione e, in caso contrario, lo avvia. Mi chiedo quale codice posso inserire nel mio servizio per farlo spegnere se lo stato WiFi è perso - e quale codice ho bisogno per far partire il servizio quando una connessione WiFi diventa attiva?
Grazie! :)
Grazie! Questa era la base della mia soluzione. La classe NetWatcher era esattamente ciò di cui avevo bisogno, ma questa soluzione è vera se la connessione dati mobile è attiva (il servizio deve essere eseguito solo quando il WiFi è attivo, non i dati mobili). Soluzione: WifiManager wifiManager = (WifiManager) this.getSystemService (Context.WIFI_SERVICE); se (wifiManager.isWifiEnabled()) { // start service } else { // stop service } –
Dovrebbe essere 'Intent intent = new Intent (context, MyService.class);' Usando 'this' come argomento per l'Intent costruttore non è valido all'interno di un 'BroadcastReceiver'. Inoltre dovrebbe essere 'context.startService (intent)'. – faizal
@faizal grazie per i suggerimenti di pulizia. Ho modificato questo post per includerli. – Phil