1

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

有什么建议吗?谢谢。

编辑:我在这里找到了解决方案: http ://www.framentos.com/en/android-tutorial/2012/02/27/how-to-prevent-wi-fi-sleep-on-android/

import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.WifiLock;


WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiLock lock = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "LockTag");
lock.acquire();

再次编辑...

不,我认为它会起作用,但它没有......

4

1 回答 1

0

您可能希望应用程序确保在设备上启用了 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" />
于 2012-12-19T00:23:56.393 回答