Loading wifi/java/android/net/wifi/WifiNative.java +21 −0 Original line number Diff line number Diff line Loading @@ -640,6 +640,27 @@ public class WifiNative { return ""; } public int getGroupCapability(String deviceAddress) { int gc = 0; if (TextUtils.isEmpty(deviceAddress)) return gc; String peerInfo = p2pPeer(deviceAddress); if (TextUtils.isEmpty(peerInfo)) return gc; String[] tokens = peerInfo.split("\n"); for (String token : tokens) { if (token.startsWith("group_capab=")) { String[] nameValue = token.split("="); if (nameValue.length != 2) break; try { return Integer.decode(nameValue[1]); } catch(NumberFormatException e) { return gc; } } } return gc; } public String p2pPeer(String deviceAddress) { return doStringCommand("P2P_PEER " + deviceAddress); } Loading wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java +14 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.net.wifi.p2p; import android.os.Parcelable; import android.os.Parcel; import android.net.wifi.p2p.WifiP2pDevice; import android.text.TextUtils; import android.util.Log; import java.util.ArrayList; Loading Loading @@ -83,12 +84,23 @@ public class WifiP2pDeviceList implements Parcelable { mDevices.put(device.deviceAddress, device); } /** @hide */ public void updateGroupCapability(String deviceAddress, int groupCapab) { if (TextUtils.isEmpty(deviceAddress)) return; WifiP2pDevice d = mDevices.get(deviceAddress); if (d != null) { d.groupCapability = groupCapab; } } /** @hide */ public void updateStatus(String deviceAddress, int status) { if (deviceAddress == null) return; if (TextUtils.isEmpty(deviceAddress)) return; WifiP2pDevice d = mDevices.get(deviceAddress); if (d != null) { d.status = status; } } /** @hide */ public WifiP2pDevice get(String deviceAddress) { Loading wifi/java/android/net/wifi/p2p/WifiP2pService.java +4 −0 Original line number Diff line number Diff line Loading @@ -764,6 +764,10 @@ public class WifiP2pService extends IWifiP2pManager.Stub { WifiP2pConfig config = (WifiP2pConfig) message.obj; mAutonomousGroup = false; /* Update group capability before connect */ int gc = mWifiNative.getGroupCapability(config.deviceAddress); mPeers.updateGroupCapability(config.deviceAddress, gc); if (mSavedPeerConfig != null && config.deviceAddress.equals( mSavedPeerConfig.deviceAddress)) { mSavedPeerConfig = config; Loading Loading
wifi/java/android/net/wifi/WifiNative.java +21 −0 Original line number Diff line number Diff line Loading @@ -640,6 +640,27 @@ public class WifiNative { return ""; } public int getGroupCapability(String deviceAddress) { int gc = 0; if (TextUtils.isEmpty(deviceAddress)) return gc; String peerInfo = p2pPeer(deviceAddress); if (TextUtils.isEmpty(peerInfo)) return gc; String[] tokens = peerInfo.split("\n"); for (String token : tokens) { if (token.startsWith("group_capab=")) { String[] nameValue = token.split("="); if (nameValue.length != 2) break; try { return Integer.decode(nameValue[1]); } catch(NumberFormatException e) { return gc; } } } return gc; } public String p2pPeer(String deviceAddress) { return doStringCommand("P2P_PEER " + deviceAddress); } Loading
wifi/java/android/net/wifi/p2p/WifiP2pDeviceList.java +14 −2 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package android.net.wifi.p2p; import android.os.Parcelable; import android.os.Parcel; import android.net.wifi.p2p.WifiP2pDevice; import android.text.TextUtils; import android.util.Log; import java.util.ArrayList; Loading Loading @@ -83,12 +84,23 @@ public class WifiP2pDeviceList implements Parcelable { mDevices.put(device.deviceAddress, device); } /** @hide */ public void updateGroupCapability(String deviceAddress, int groupCapab) { if (TextUtils.isEmpty(deviceAddress)) return; WifiP2pDevice d = mDevices.get(deviceAddress); if (d != null) { d.groupCapability = groupCapab; } } /** @hide */ public void updateStatus(String deviceAddress, int status) { if (deviceAddress == null) return; if (TextUtils.isEmpty(deviceAddress)) return; WifiP2pDevice d = mDevices.get(deviceAddress); if (d != null) { d.status = status; } } /** @hide */ public WifiP2pDevice get(String deviceAddress) { Loading
wifi/java/android/net/wifi/p2p/WifiP2pService.java +4 −0 Original line number Diff line number Diff line Loading @@ -764,6 +764,10 @@ public class WifiP2pService extends IWifiP2pManager.Stub { WifiP2pConfig config = (WifiP2pConfig) message.obj; mAutonomousGroup = false; /* Update group capability before connect */ int gc = mWifiNative.getGroupCapability(config.deviceAddress); mPeers.updateGroupCapability(config.deviceAddress, gc); if (mSavedPeerConfig != null && config.deviceAddress.equals( mSavedPeerConfig.deviceAddress)) { mSavedPeerConfig = config; Loading