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:
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user