Android 安卓如何开启WiFi

Android 安卓如何开启WiFi,android,android-wifi,Android,Android Wifi,我有一个运行Android的嵌入式模块,在大约5分钟的不活动后,操作系统会断开WiFi。如果我运行任何使用网络连接的应用程序,WiFi将保持关闭状态,并且图标不会显示在状态栏中。我必须进入设置和WiFi设置才能恢复WiFi 我有一个应用程序,它必须通过WiFi连接定期发送数据。如果我在WiFi处于活动状态的情况下启动该程序,并每2-3分钟发送一次数据,则WiFi将保持活动状态,并且永远不会断开连接。如果我让WiFi断开连接,然后尝试发送,它将永远不会恢复。在代码中,调用: wifi.is

我有一个运行Android的嵌入式模块,在大约5分钟的不活动后,操作系统会断开WiFi。如果我运行任何使用网络连接的应用程序,WiFi将保持关闭状态,并且图标不会显示在状态栏中。我必须进入设置和WiFi设置才能恢复WiFi

我有一个应用程序,它必须通过WiFi连接定期发送数据。如果我在WiFi处于活动状态的情况下启动该程序,并每2-3分钟发送一次数据,则WiFi将保持活动状态,并且永远不会断开连接。如果我让WiFi断开连接,然后尝试发送,它将永远不会恢复。在代码中,调用:

    wifi.isWifiEnabled()
始终返回true,但图标保持隐藏,表示未连接WiFi。我曾尝试通过一个按钮从代码中调用reconnect(),作为测试,但WiFi从未出现

从终端调试端口,我可以键入IFCONFIG WLAN0 UP,然后WiFi连接到AP

我是否可以拨打任何会导致WiFi重新连接的电话,并且除了检测TCP/IP连接失败之外,我是否有其他方法可以检测到WiFi已断开连接

为了响应下面的请求,我添加了以下代码片段和LOGCAT输出

    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 up时,logcat中会显示以下内容(已删除一些重复输出)

试试这个,不知道是否有效


尝试此操作,不知道是否工作。

在清单中使用此权限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

在清单中使用此权限

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>

1) 模块是什么?到目前为止你觉得怎么样?2) 该模块是否为特定的电路板功能提供了任何特殊的API?还是纯android SDK的东西?嗨,朱安。我用的是FriendlyArm的Mini210。它附带了Android 2.3源代码,我使用本机代码JNI构建了它,包括RS232、GPIO和I2C功能,因此我可以从Android代码中访问它们。我发现除了WiFi问题外,它工作正常。1)模块是什么?到目前为止你觉得怎么样?2) 该模块是否为特定的电路板功能提供了任何特殊的API?还是纯android SDK的东西?嗨,朱安。我用的是FriendlyArm的Mini210。它附带了Android 2.3源代码,我使用本机代码JNI构建了它,包括RS232、GPIO和I2C功能,因此我可以从Android代码中访问它们。我发现除了WiFi问题外,它工作得很好。我的代码和清单中都有这些问题,但它仍然不会出现。我已经编辑了上面的原始帖子,以显示您的要求。对不起,我是新来的论坛,所以只是学习如何在这里发布的诀窍!!我在我的代码和清单中有所有这些,但它仍然不会出现。我已经编辑了上面的原始帖子,以显示您的要求。对不起,我是新来的论坛,所以只是学习如何在这里发布的诀窍!!
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(true);