2014-11-24 5 views
3

Мы разрабатываем программное обеспечение на пользовательской платформе Android, и мы начинаем получать жалобы от клиентов о состоянии Wi-Fi-соединения. Кажется, что время от времени они теряют соединение Wifi в течение 1-2 секунд, а затем автоматически возвращается. Они могут заметить это из небольшой обратной связи с графическим интерфейсом или из события разъединения/повторного подключения, выданного клиентом XMPP.Android: Как предотвратить разрыв Wi-Fi при обновлении DHCP?

После исследования мы обнаружили, из журнала в adb logcat, что Wi-Fi меняет свое состояние от CONNECTED до CONNECTING каждый раз, когда есть обновление DHCP. Поскольку у нас в настоящее время время аренды DHCP составляет 1 час, наша платформа пытается обновить свой адрес каждые 29 минут. Вот выдержка из журнала возобновления DHCP:

[ 11-24 10:10:11.751 2629: 3350 D/DhcpStateMachine ] 
DHCP renewal on wlan0 

[ 11-24 10:10:12.351 2629: 3350 D/DhcpStateMachine ] 
DHCP succeeded on wlan0 

[ 11-24 10:10:12.361 2877: 2877 D/DCT  ] 
onReceive: action=android.net.wifi.STATE_CHANGE 

[ 11-24 10:10:12.361 2877: 2877 D/DCT  ] 
NETWORK_STATE_CHANGED_ACTION: mIsWifiConnected=false 

[ 11-24 10:10:12.361 2877: 2877 D/DCT  ] 
NETWORK_STATE_CHANGED_ACTION: networkInfo=NetworkInfo: type: WIFI[], state: CONNECTING/VERIFYING_POOR_LINK, reason: (unspecified), extra: "XXX", roaming: false, failover: false, isAvailable: true 

[ 11-24 10:10:12.371 2877: 2877 D/DCT  ] 
onReceive: action=android.net.wifi.STATE_CHANGE 

[ 11-24 10:10:12.371 2877: 2877 D/DCT  ] 
NETWORK_STATE_CHANGED_ACTION: mIsWifiConnected=false 

[ 11-24 10:10:12.371 2877: 2877 D/DCT  ] 
NETWORK_STATE_CHANGED_ACTION: networkInfo=NetworkInfo: type: WIFI[], state: CONNECTING/CAPTIVE_PORTAL_CHECK, reason: (unspecified), extra: "XXX", roaming: false, failover: false, isAvailable: true 

[ 11-24 10:10:12.381 2877: 2877 D/DCT  ] 
onReceive: action=android.net.wifi.STATE_CHANGE 

[ 11-24 10:10:12.381 2877: 2877 D/DCT  ] 
NETWORK_STATE_CHANGED_ACTION: mIsWifiConnected=true 

[ 11-24 10:10:12.381 2877: 2877 D/DCT  ] 
NETWORK_STATE_CHANGED_ACTION: networkInfo=NetworkInfo: type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: "XXX", roaming: false, failover: false, isAvailable: true 

Как я мог предотвратить состояние соединения для перехода от CONNECTED к CONNECTING при использовании DHCP? Могу ли я изменить настройку где-нибудь, чтобы изменить это поведение?

+0

Какая версия Android работает на пораженном устройстве? – atok

+0

Это версия 4.3 – slaadvak

+0

Я ожидал этого: https://www.net.princeton.edu/android/android-stops-renewing-lease-keeps-using-IP-address-11236.html, но он затронул гораздо более старые устройства. – atok

ответ

0

Не думаю, что DISCONNECTING можно действительно избежать. Единственный способ справиться с этой проблемой - игнорировать состояние DISCONNECTING в состоянии изменения Wi-Fi и использовать метод isConnectedOrConnecting от Network вместо isConnected, чтобы проверить, подключены мы или нет.

 Смежные вопросы

  • Нет связанных вопросов^_^