diff options
Diffstat (limited to 'service/java/com/android/server/wifi/WifiNetworkFactory.java')
-rw-r--r-- | service/java/com/android/server/wifi/WifiNetworkFactory.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiNetworkFactory.java b/service/java/com/android/server/wifi/WifiNetworkFactory.java index 01453fa33..1c1d5e57c 100644 --- a/service/java/com/android/server/wifi/WifiNetworkFactory.java +++ b/service/java/com/android/server/wifi/WifiNetworkFactory.java @@ -40,6 +40,7 @@ import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.Messenger; +import android.os.Process; import android.os.RemoteException; import android.os.WorkSource; import android.text.TextUtils; @@ -429,6 +430,24 @@ public class WifiNetworkFactory extends NetworkFactory { return mGenericConnectionReqCount > 0 || mActiveSpecificNetworkRequest != null; } + /** + * Return the uid of the specific network request being processed if connected to the requested + * network. + * + * @param connectedNetwork WifiConfiguration corresponding to the connected network. + * @return uid of the specific request (if any), else -1. + */ + public int getActiveSpecificNetworkRequestUid(@NonNull WifiConfiguration connectedNetwork) { + if (mUserSelectedNetwork == null || connectedNetwork == null) return Process.INVALID_UID; + if (!isUserSelectedNetwork(connectedNetwork)) { + Log.w(TAG, "Connected to unknown network " + connectedNetwork + ". Ignoring..."); + return Process.INVALID_UID; + } + return mActiveSpecificNetworkRequestSpecifier != null + ? mActiveSpecificNetworkRequestSpecifier.requestorUid + : Process.INVALID_UID; + } + private void handleConnectToNetworkUserSelection(WifiConfiguration network) { Log.d(TAG, "User initiated connect to network: " + network.SSID); |