我的目标是API 17,并使用下面的代码来启用WiFi直接(P2P)。一切正常工作(找到和连接到同行),但当不使用WiFi -直接一直关闭不时(看起来它取决于安卓手机-我大约3-5分钟),这也将关闭WiFi关闭,使我失去互联网连接。
我有一个接收器,可以检测P2P的状态何时发生变化,从而将其重新打开,但最好保持P2P始终开着,即使它没有连接到任何对等点。
为了做到这一点,还可以不停地敲击android手机吗?还有其他建议吗?
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) {
// UI update to indicate wifi p2p status.
int state = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1);
if (state == WifiP2pManager.WIFI_P2P_STATE_ENABLED) {
// Wifi Direct mode is enabled
activity.setIsWifiP2pEnabled(true);
} else {
activity.setIsWifiP2pEnabled(false);
activity.resetData();
}发布于 2015-04-15 17:47:49
你应该获得WifiLock。或者你做了?
来自WakeLock的javadoc条目:
通常,当用户有一段时间没有使用该设备时,Wi收音机可能会关闭。获得一个WifiLock将保持收音机开着,直到锁被释放。
请参阅关于WifiLock:http://developer.android.com/reference/android/net/wifi/WifiManager.WifiLock.html的更多信息
阅读以下问题的答案:Is using WakeLock overkill while using WifiLock on Android?
https://stackoverflow.com/questions/29602375
复制相似问题