如何通过应用唤醒Android设备的Wifi或3G?

如何通过应用唤醒Android设备的Wifi或3G?,android,wifi,state,Android,Wifi,State,我正在为Android开发一个基于服务器websocket的应用程序,但通常不能正常工作。当它失败时,我尝试从我的电脑ping设备,我无法访问它。我必须重置设备或打开飞行模式并再次关闭。然后,我可以通过ping命令访问设备,我的服务器工作正常 有什么建议吗? 谢谢 编辑: 我在这里找到了解决方案: 再次编辑 不,我认为它会工作,但不会…。您可能希望应用程序确保设备上已启用Wifi。您无法以编程方式启用它,但可以打开“无线设置”菜单,以便用户能够启用它。要检测是否存在网络连接,可以使用以下代码:

我正在为Android开发一个基于服务器websocket的应用程序,但通常不能正常工作。当它失败时,我尝试从我的电脑ping设备,我无法访问它。我必须重置设备或打开飞行模式并再次关闭。然后,我可以通过ping命令访问设备,我的服务器工作正常

有什么建议吗? 谢谢

编辑: 我在这里找到了解决方案:

再次编辑


不,我认为它会工作,但不会…。

您可能希望应用程序确保设备上已启用Wifi。您无法以编程方式启用它,但可以打开“无线设置”菜单,以便用户能够启用它。要检测是否存在网络连接,可以使用以下代码:

ConnectivityManager connectivityManager  
                = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 

if(activeNetworkInfo != null && activeNetworkInfo.isConnected()) {
    // There is a connection
    ...
}
else {
    // No connection; open the wireless settings menu
    startActivity(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS));
    ...
}
您的清单中还需要以下权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" />

我将尝试检查与您的解决方案的连接,但我怀疑“activeNetworkInfo.isConnected())”可能会返回true,并且省电功能仍将启用。明天我会告诉你结果。非常感谢。代码在这里:。有时服务器没有正确响应(没有打开或唤醒Wifi)。在方法startServer中定义了Websocket。我在这里找到了解决方案:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" />