Merge "WifiManager: Restore network pin behavior on enableNetwork" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8d3cb6b3fd
@@ -36,11 +36,14 @@ import android.content.pm.ParceledListSlice;
|
|||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.DhcpInfo;
|
import android.net.DhcpInfo;
|
||||||
import android.net.Network;
|
import android.net.Network;
|
||||||
|
import android.net.NetworkCapabilities;
|
||||||
|
import android.net.NetworkRequest;
|
||||||
import android.net.wifi.hotspot2.IProvisioningCallback;
|
import android.net.wifi.hotspot2.IProvisioningCallback;
|
||||||
import android.net.wifi.hotspot2.OsuProvider;
|
import android.net.wifi.hotspot2.OsuProvider;
|
||||||
import android.net.wifi.hotspot2.PasspointConfiguration;
|
import android.net.wifi.hotspot2.PasspointConfiguration;
|
||||||
import android.net.wifi.hotspot2.ProvisioningCallback;
|
import android.net.wifi.hotspot2.ProvisioningCallback;
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
@@ -56,6 +59,7 @@ import com.android.internal.annotations.GuardedBy;
|
|||||||
import com.android.internal.annotations.VisibleForTesting;
|
import com.android.internal.annotations.VisibleForTesting;
|
||||||
import com.android.internal.util.AsyncChannel;
|
import com.android.internal.util.AsyncChannel;
|
||||||
import com.android.internal.util.Protocol;
|
import com.android.internal.util.Protocol;
|
||||||
|
import com.android.server.net.NetworkPinner;
|
||||||
|
|
||||||
import dalvik.system.CloseGuard;
|
import dalvik.system.CloseGuard;
|
||||||
|
|
||||||
@@ -1895,12 +1899,27 @@ public class WifiManager {
|
|||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public boolean enableNetwork(int netId, boolean attemptConnect) {
|
public boolean enableNetwork(int netId, boolean attemptConnect) {
|
||||||
|
final boolean pin = attemptConnect && mTargetSdkVersion < Build.VERSION_CODES.LOLLIPOP;
|
||||||
|
if (pin) {
|
||||||
|
NetworkRequest request = new NetworkRequest.Builder()
|
||||||
|
.clearCapabilities()
|
||||||
|
.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)
|
||||||
|
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
|
||||||
|
.build();
|
||||||
|
NetworkPinner.pin(mContext, request);
|
||||||
|
}
|
||||||
|
|
||||||
boolean success;
|
boolean success;
|
||||||
try {
|
try {
|
||||||
success = mService.enableNetwork(netId, attemptConnect, mContext.getOpPackageName());
|
success = mService.enableNetwork(netId, attemptConnect, mContext.getOpPackageName());
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw e.rethrowFromSystemServer();
|
throw e.rethrowFromSystemServer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pin && !success) {
|
||||||
|
NetworkPinner.unpin();
|
||||||
|
}
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user