私は公共のwifiネットワークにログインするアプリに取り組んでいます。認証サーバーへの http 投稿を行うことで、ログインが機能しています。私の次のステップは、新しい Wi-Fi 接続があるときにアプリが自動的に http 投稿を行うようにし、正しい ssid に接続されていることを確認することです。私の質問は、これを行う最良の方法はどれですか? サービスを作成してブロードキャストレシーバーに登録する最良の方法は?
ご協力いただきありがとうございます
私は公共のwifiネットワークにログインするアプリに取り組んでいます。認証サーバーへの http 投稿を行うことで、ログインが機能しています。私の次のステップは、新しい Wi-Fi 接続があるときにアプリが自動的に http 投稿を行うようにし、正しい ssid に接続されていることを確認することです。私の質問は、これを行う最良の方法はどれですか? サービスを作成してブロードキャストレシーバーに登録する最良の方法は?
ご協力いただきありがとうございます
私がそれを行う方法は、android.net.conn.CONNECTIVITY_CHANGE
インテントをリッスンするブロードキャストレシーバーがあることです。そのブロードキャスト レシーバーでは、以下をポーリングすることで、どのような接続が確立されているかを確認できますConnectivityManager
。
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean hasWifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI) != null && cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isAvailable() && cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected();
そして、認証サーバーへの投稿を行うサービスを開始します。
あるいは、実際にサービスにインテントをリッスンさせ、android.net.conn.CONNECTIVITY_CHANGE
そこで wifi チェックを行うこともできます。