学校での Android フォンの Wi-Fi の何が問題なのかを突き止めるために数日を費やしました。学校の Wi-Fi は、PEAP を使用した 802.1x EAP です。ユーザー名とパスワードが必要です。
私は 2 台の Android フォンを持っていて、それらでさまざまな ROM を実行してきたので、これが単なる ROM 固有の問題ではないことはわかっています。現在、Mytouch 3g fender ed で 2.2.1 を実行しています。私は自分の携帯電話にデータ プランを持っていないので、データをオフにしています。Wi-Fiしか使っていません。
私が抱えている問題は、wifi に接続した後、しばらくはすべて問題ないのですが、すぐに (おそらく 15 分から 1 時間後)、電話の電源を入れて、wifi 接続が表示されると、認証中と表示されることです。リセットするまでそこにとどまります。通常の HTTP でインターネットをサーフィンしようとすると問題なく動作しますが、Wi-Fi 接続を必要とするアプリを実行しようとすると、ネットワーク接続があるというエラーが表示されます (例として、「接続の問題」と表示される Google Voice 検索があります)。 」)。フィードが更新されない、gmail が更新されないなど。接続をリセットした後、wifi は再び完全に機能します。なぜこれが起こるのかわかりません。学校のwifiの設定方法に関係があると思います。
ただし、問題を簡単に修正するために、接続が認証されているかどうかをテストし、認証されている場合は接続を再関連付けするアプリを作成しています。しかし、私は問題に直面しています。
Wi-Fi が認証されているかどうかを確認するコードと、いくつかのデバッグ出力を次に示します。
private void checkWifi() {
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
SupplicantState state = info.getSupplicantState();
Log.d(getClass().getSimpleName(), state.toString());
NetworkInfo.DetailedState state2 = WifiInfo.getDetailedStateOf(info.getSupplicantState());
Log.d(getClass().getSimpleName(), state2.toString());
}
そして、ログ出力は次のとおりです。
D/WifiCheckerService(24732): COMPLETED
D/WifiCheckerService(24732): OBTAINING_IPADDR
電話のwifiが接続済みまたは認証中と表示されていても、ログ出力は同じです。つまり、現在の私のプログラムは、ファンキーな「認証」状態にあるかどうかを区別できません。Wi-Fi をリセットするタイミングを知るには、区別できる必要があります。どんな助けでも大歓迎です。