WFD fixes

- Specificy max GO intent for WFD
- Increase GO idle time out to 20s and use it for GO and client
- Fix connection broadcast

Change-Id: Ia0e28bc9eb3e23d2830a6c814c5a537ca0bcd5db
This commit is contained in:
Irfan Sheriff
2012-09-18 12:05:31 -07:00
parent 61e8180b09
commit e0c28d5f13
3 changed files with 8 additions and 6 deletions

View File

@@ -483,6 +483,8 @@ final class WifiDisplayController implements DumpUtils.Dump {
mConnectingDevice = mDesiredDevice;
WifiP2pConfig config = new WifiP2pConfig();
config.deviceAddress = mConnectingDevice.deviceAddress;
// Helps with STA & P2P concurrency
config.groupOwnerIntent = WifiP2pConfig.MAX_GROUP_OWNER_INTENT;
final WifiDisplay display = createWifiDisplay(mConnectingDevice);
mHandler.post(new Runnable() {

View File

@@ -37,6 +37,9 @@ public class WifiP2pConfig implements Parcelable {
*/
public WpsInfo wps;
/** @hide */
public static final int MAX_GROUP_OWNER_INTENT = 15;
/**
* This is an integer value between 0 and 15 where 0 indicates the least
* inclination to be a group owner and 15 indicates the highest inclination

View File

@@ -135,7 +135,7 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
private static final int DISCOVER_TIMEOUT_S = 120;
/* Idle time after a peer is gone when the group is torn down */
private static final int GROUP_IDLE_TIME_S = 5;
private static final int GROUP_IDLE_TIME_S = 20;
/**
* Delay between restarts upon failure to setup connection with supplicant
@@ -1221,13 +1221,10 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
mGroup.getNetworkName()));
}
mWifiNative.setP2pGroupIdle(mGroup.getInterface(), GROUP_IDLE_TIME_S);
if (mGroup.isGroupOwner()) {
startDhcpServer(mGroup.getInterface());
} else {
// Set group idle only for a client on the group interface to speed up
// disconnect when GO is gone. Setting group idle time for a group owner
// causes connectivity issues for new clients
mWifiNative.setP2pGroupIdle(mGroup.getInterface(), GROUP_IDLE_TIME_S);
mDhcpStateMachine = DhcpStateMachine.makeDhcpStateMachine(mContext,
P2pStateMachine.this, mGroup.getInterface());
mDhcpStateMachine.sendMessage(DhcpStateMachine.CMD_START_DHCP);
@@ -1292,7 +1289,6 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
//DHCP server has already been started if I am a group owner
if (mGroup.isGroupOwner()) {
setWifiP2pInfoOnGroupFormation(SERVER_ADDRESS);
sendP2pConnectionChangedBroadcast();
}
}
@@ -1315,6 +1311,7 @@ public class WifiP2pService extends IWifiP2pManager.Stub {
} else {
loge("Connect on null device address, ignore");
}
sendP2pConnectionChangedBroadcast();
break;
case WifiMonitor.AP_STA_DISCONNECTED_EVENT:
device = (WifiP2pDevice) message.obj;