Я провел несколько дней, пытаясь выяснить, что не так с Wi-Fi моего Android-телефона в школе. Школа Wi-Fi является 802.1x EAP с использованием PEAP. Требуется имя пользователя, пароль.
У меня было два телефона Android, и я запустил много разных ПЗУ, поэтому я знаю, что это не просто проблема, связанная с ПЗУ. В настоящее время я использую 2.2.1 на крыле Mytouch 3g ed. У меня нет тарифного плана с моим телефоном, поэтому я держу данные отключенными. Я использую только Wi-Fi.
У меня проблема в том, что после того, как я подключился к Wi-Fi, какое-то время все в порядке, но вскоре (возможно, через 15 минут или час) я включу свой телефон, и когда я увижу соединение Wi-Fi, он говорит аутентификацию и остается там до тех пор, пока я не сброслю его. Если я пытаюсь путешествовать по Интернету с обычным HTTP, он работает нормально, но если я пытаюсь запустить любые приложения, требующие Wi-Fi-соединения, они выдают ошибку, сообщающую, что есть сетевое соединение (например, поиск в Google Voice, который скажет «Проблема с подключением» «). Каналы не могут обновляться, gmail не обновляется и т. Д. После сброса соединения Wi-Fi снова работает отлично. Я не уверен, почему это происходит. Я думаю, это как-то связано с настройкой Wi-Fi в школе.
Однако, чтобы быстро решить проблему, я пишу приложение, которое проверит, аутентифицирует ли соединение, и повторно свяжет соединение, если оно есть. Хотя у меня проблемы.
Вот код для проверки подлинности 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
Вывод журнала одинаков, независимо от того, говорит ли Wi-Fi на телефоне «Подключен» или «Аутентификация», что означает, что моя программа на данный момент не может различить, находится ли она в «фанки» состоянии «аутентификации» или нет. Мне нужно уметь различать, чтобы знать, когда нужно сбросить Wi-Fi. Любая помощь с благодарностью.