1

PagePlusで使用しているAndroidフォンを持っています。デバイスがwifiネットワークに接続されているかどうかを(Linux Webサーバーから)リモートで検出するための最良の方法を見つけようとしています。

Wi-Fiに接続していないときにGoogleVoiceアカウントでSMS転送を無効にしたいのですが、電話にデータ接続がないため、これをリモートでトリガーする必要があります。転送設定の切り替え機能をプログラムする方法を知っています。Androidデバイスのwifi状態をリモートで検出する必要があります。

電話のgtalkステータスを監視したり、Androidクライアントがオンラインであるかどうかを検出したりするなど、いくつかのアイデアを投げかけました。これを機能させることはできますが、世界で最もクリーンなアプローチではありません。

推奨事項やアイデアはありますか?これがプログラミングの問題ではないことはわかっていますが、助けが必要です。

4

1 に答える 1

1

Androidクライアントでバックグラウンドサービスを実行すると、wifiが接続されているときは常に一定の時間間隔でウェブサーバーにpingを送信できます。クライアントが「スケジュールされた」チェックインを逃すと、ウェブサーバーは電話が切断されていると判断し、必要なアクションを実行します。その場合。

サーバーにpingを実行するには、単純なTCPソケットを使用します。

// 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();

このチュートリアルには、サーバー側の側面を含む、より詳細な例があります。

于 2012-04-11T15:08:53.583 に答える