我有一個運行Android的嵌入式模塊,操作系統在大約5分鐘不活動後斷開WiFi連接。如果我然後運行任何使用網絡連接的應用程序,則WiFi將保持關閉狀態並且圖標不會顯示在狀態欄中。我必須進入設置和WiFi設置以使WiFi恢復。Android。如何調出WiFi
我有一個應用程序必須定期通過WiFi連接發送數據。如果我使用WiFi啓動程序並每隔2-3分鐘發送一次數據,則WiFi將保持活動狀態並且不會斷開連接。如果我讓WiFi斷開連接然後嘗試發送,它永遠不會回來。在代碼中,撥打:
wifi.isWifiEnabled()
總是返回true,但圖標仍然隱藏,表示WiFi未連接。我試圖從代碼中調用reconnect()作爲一個測試按鈕,但WiFi永遠不會出現。
從終端調試端口我可以鍵入IFCONFIG WLAN0 UP和WiFi連接到AP。
是否有任何呼叫我可以做,這將導致WiFi重新連接,有沒有什麼辦法可以實際檢測到WiFi斷開,而不是檢測到TCP/IP連接失敗?
響應於REQUEST下面,我已加入下列代碼段和logcat的OUTPUT
wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
wifiLock = wifi.createWifiLock(WifiManager.WIFI_MODE_FULL, "Mini210-Lock");
if(!wifiLock.isHeld())
{
wifi.setWifiEnabled(true);
wifi.reconnect();
// wifi.reassociate(); // Also try this!!
wifiLock.acquire(); // Keep system alive
Log.i("Alarm System", "WiFi Lock Acquired");
}
logcat的示出上述代碼運行時以下。
09-10 22:43:25.273: I/Alarm System(611): WiFi Lock Acquired
09-10 22:43:25.417: I/ActivityManager(91): Display axon.alarm.system/.AlarmSystemActivity: +15s198ms (total +4h23m59s645ms)
09-10 22:43:31.636: W/wpa_supplicant(133): Failed to initiate AP scan.
09-10 22:43:41.636: W/wpa_supplicant(133): Failed to initiate AP scan.
當我輸入的ifconfig在調試監聽端口爲wlan0起來,在logcat中會顯示以下的(一些重複的輸出已被刪除)
09-10 22:56:12.726: I/wpa_supplicant(133): CTRL-EVENT-SCAN-RESULTS Ready
09-10 22:56:12.726: I/wpa_supplicant(133): Trying to associate with 00:22:75:32:a9:47 (SSID='kpk_mobile' freq=2412 MHz)
09-10 22:56:20.976: D/dhcpcd(623): checking 192.168.1.123 is available on attached networks
09-10 22:56:20.976: D/dhcpcd(623): sending ARP probe (1 of 3), next in 1.73 seconds
09-10 22:56:22.710: D/dhcpcd(623): sending ARP probe (2 of 3), next in 1.00 seconds
09-10 22:56:23.714: D/dhcpcd(623): sending ARP probe (3 of 3), next in 2.00 seconds
09-10 22:56:25.718: D/dhcpcd(623): leased 192.168.1.123 for 86400 seconds
09-10 22:56:25.718: D/dhcpcd(623): adding IP address 192.168.1.123/24
09-10 22:56:25.718: D/dhcpcd(623): adding route to 0.0.0.0/0 via 192.168.1.1
09-10 22:56:25.730: D/dhcpcd(623): executing `/system/etc/dhcpcd/dhcpcd-run-hooks', reason BOUND
09-10 22:56:25.773: D/dhcpcd(623): forking to background
09-10 22:56:25.804: V/WifiStateTracker(91): DhcpHandler: DHCP request succeeded
09-10 22:56:25.804: V/WifiStateTracker(91): IP configuration: ipaddr 192.168.1.123 gateway 192.168.1.1 netmask 255.255.255.0 dns1 192.168.1.1 dns2 0.0.0.0 DHCP server 192.168.1.1 lease 86400 seconds
09-10 22:56:25.816: I/TelephonyRegistry(91): notifyDataConnection: state=0 isDataConnectivityPossible=false reason=dataDisabled interfaceName=null networkType=0
09-10 22:56:25.828: D/WifiWatchdogService(91): (android.server.ServerThread) kpk_mobile (00:22:75:32:a9:47) does not require the watchdog
09-10 22:56:25.843: V/FTPDroid(356): EventsReceiver: NETWORK_STATE_CHANGED_ACTION (exists: true, connected: true)
09-10 22:56:25.863: D/Tethering(91): MasterInitialState.processMessage what=3
09-10 22:56:25.902: I/GTalkService(278): [ServiceAutoStarter] --- connectivity changed
09-10 22:56:25.902: I/GTalkService(278): [ServiceAutoStarter] --- start GTalk service ---
09-10 22:56:27.789: D/dhcpcd(647): sending ARP announce (1 of 2), next in 2.00 seconds
09-10 22:56:29.789: D/dhcpcd(647): sending ARP announce (2 of 2)
09-10 22:56:29.789: D/dhcpcd(647): renew in 43196 seconds
1)什麼是模塊?你到目前爲止對此有何看法? 2)該模塊是否配備了特定板卡功能的特殊API?或者它是純粹的android SDK的東西? –
嗨Juian。我正在使用FriendlyArm的Mini210。它配備了Android 2.3源代碼,並且使用本地代碼JNI構建它以包含RS232,GPIO和I2C功能,以便我可以在Android代碼中訪問它們。除了WiFi問題,我發現它運行良好。 –