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