2012-04-11 12 views
1

Ich habe ein Android-Telefon, das ich auf Seite Plus verwende. Ich versuche herauszufinden, wie man am besten (von einem Linux-Webserver) erkennt, ob das Gerät mit einem WLAN-Netzwerk verbunden ist oder nicht.Remote-Erkennung des Verbindungsstatus des Android-Telefons

Ich möchte SMS-Weiterleitung auf meinem Google Voice-Konto deaktivieren, wenn nicht mit dem WLAN verbunden ist, aber da mein Telefon keine Datenverbindung hat, muss dies remote ausgelöst werden. Ich weiß, wie man die Weiterleitungseinstellung toggle-Funktion programmiert, ich muss nur den android-Gerät Wifi Zustand entfernt erkennen.

Ich habe ein paar Ideen herumgeworfen, wie die Überwachung des gtalk - Status des Telefons und die Erkennung, ob der Android - Client online ist - ich kann das irgendwie zur Arbeit bringen, aber es ist nicht der sauberste Ansatz in der Welt.

Irgendwelche Empfehlungen oder Ideen? Ich weiß, dass das nicht gerade eine Programmierfrage ist, aber ich würde etwas Hilfe lieben!

+0

können Sie Code auf dem Client (Telefon) ausführen? – mfrankli

+0

Ja, ich kann Code auf dem Client ausführen. Ich würde nur das Telefon deaktivieren die Weiterleitung Einstellung selbst auf WLAN-Verbindung, aber das ist unmöglich, da ich keinen Netzwerkzugriff nach dem Trennen von der WLAN haben. – xur17

Antwort

1

Sie könnten einen Hintergrunddienst auf dem Android-Client ausführen, der den Webserver in konstanten Zeitintervallen pingt, sobald WLAN verbunden ist - wenn der Client einen "geplanten" Check-in verpasst, kommt der Webserver zu dem Schluss, dass das Telefon getrennt ist was auch immer Sie in diesem Fall tun möchten.

den Server pingen, ich einen einfachen TCP-Socket verwenden würde:

// you could use IP address instead of the hostname if you don't have a domain name 
// PORT_NUM is some value shared between the server and the client e.g. 3456 
Socket sock = new Socket("mywebserverurl.com", PORT_NUM); 
OutputStream out = sock.getOutputStream(); 
String data = getDataServerNeeds(); 
out.write(data.getBytes()); 
sock.close(); 

This tutorial hat ein detaillierteres Beispiel, einschließlich dem serverseitigen Aspekts.

+0

Welche Art von Auswirkungen auf die Batterielebensdauer hätte das? Würde ein Ping eine Minute lang die Lebensdauer der Batterie stark beeinträchtigen? – xur17

+1

Sie könnten wahrscheinlich ein Experiment ausführen, um dies strenger zu überprüfen, aber ich würde mir vorstellen, dass ein Ping pro Minute während der Verbindung mit WLAN eine triviale Auswirkung auf die Lebensdauer der Batterie haben würde. bedenken Sie, dass während das WLAN verbunden ist, Ihr Telefon im Allgemeinen viele Daten sendet/empfängt, so dass eine winzige Nachricht wahrscheinlich nicht tödlich sein wird. – mfrankli

+0

Hört sich nach einer interessanten Idee an - Offensichtlich möchte ich eine minimale Datennutzung für den Ping - irgendwelche Ideen über den besten Weg, dies zu tun? HTTP hätte einen ansehnlichen Aufwand - wäre eine benutzerdefinierte TCP-Verbindung sinnvoller? – xur17

Verwandte Themen