Merge "Allow set metered override setting for passpoint"
This commit is contained in:
committed by
Android (Google) Code Review
commit
ee88d50d75
@@ -7639,6 +7639,7 @@ package android.net.wifi {
|
||||
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void save(@NonNull android.net.wifi.WifiConfiguration, @Nullable android.net.wifi.WifiManager.ActionListener);
|
||||
method @RequiresPermission(android.Manifest.permission.WIFI_SET_DEVICE_MOBILITY_STATE) public void setDeviceMobilityState(int);
|
||||
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setMacRandomizationSettingPasspointEnabled(@NonNull String, boolean);
|
||||
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public void setMeteredOverridePasspoint(@NonNull String, int);
|
||||
method @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) public boolean setSoftApConfiguration(@NonNull android.net.wifi.SoftApConfiguration);
|
||||
method @Deprecated @RequiresPermission(android.Manifest.permission.CHANGE_WIFI_STATE) public boolean setWifiApConfiguration(android.net.wifi.WifiConfiguration);
|
||||
method @RequiresPermission(android.Manifest.permission.WIFI_UPDATE_USABILITY_STATS_SCORE) public boolean setWifiConnectedNetworkScorer(@NonNull java.util.concurrent.Executor, @NonNull android.net.wifi.WifiManager.WifiConnectedNetworkScorer);
|
||||
@@ -8004,6 +8005,7 @@ package android.net.wifi.hotspot2 {
|
||||
}
|
||||
|
||||
public final class PasspointConfiguration implements android.os.Parcelable {
|
||||
method public int getMeteredOverride();
|
||||
method public boolean isAutoJoinEnabled();
|
||||
method public boolean isMacRandomizationEnabled();
|
||||
}
|
||||
|
||||
@@ -97,6 +97,8 @@ interface IWifiManager
|
||||
|
||||
void setMacRandomizationSettingPasspointEnabled(String fqdn, boolean enable);
|
||||
|
||||
void setMeteredOverridePasspoint(String fqdn, int meteredOverride);
|
||||
|
||||
boolean startScan(String packageName, String featureId);
|
||||
|
||||
List<ScanResult> getScanResults(String callingPackage, String callingFeatureId);
|
||||
|
||||
@@ -4348,6 +4348,25 @@ public class WifiManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the user's choice of metered override for a Passpoint profile.
|
||||
*
|
||||
* @param fqdn the FQDN (fully qualified domain name) of the passpoint profile.
|
||||
* @param meteredOverride One of three values: {@link WifiConfiguration#METERED_OVERRIDE_NONE},
|
||||
* {@link WifiConfiguration#METERED_OVERRIDE_METERED},
|
||||
* {@link WifiConfiguration#METERED_OVERRIDE_NOT_METERED}
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS)
|
||||
public void setMeteredOverridePasspoint(@NonNull String fqdn, int meteredOverride) {
|
||||
try {
|
||||
mService.setMeteredOverridePasspoint(fqdn, meteredOverride);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowFromSystemServer();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Disable an ephemeral network.
|
||||
*
|
||||
|
||||
@@ -16,6 +16,9 @@
|
||||
|
||||
package android.net.wifi.hotspot2;
|
||||
|
||||
import static android.net.wifi.WifiConfiguration.METERED_OVERRIDE_NONE;
|
||||
import static android.net.wifi.WifiConfiguration.MeteredOverride;
|
||||
|
||||
import android.annotation.Nullable;
|
||||
import android.annotation.SystemApi;
|
||||
import android.net.wifi.hotspot2.pps.Credential;
|
||||
@@ -437,6 +440,18 @@ public final class PasspointConfiguration implements Parcelable {
|
||||
*/
|
||||
private boolean mIsMacRandomizationEnabled = true;
|
||||
|
||||
/**
|
||||
* Indicates if the end user has expressed an explicit opinion about the
|
||||
* meteredness of this network, such as through the Settings app.
|
||||
* This value is one of {@link #METERED_OVERRIDE_NONE}, {@link #METERED_OVERRIDE_METERED},
|
||||
* or {@link #METERED_OVERRIDE_NOT_METERED}.
|
||||
* <p>
|
||||
* This should always override any values from {@link WifiInfo#getMeteredHint()}.
|
||||
*
|
||||
* By default this field is set to {@link #METERED_OVERRIDE_NONE}.
|
||||
*/
|
||||
private int mMeteredOverride = METERED_OVERRIDE_NONE;
|
||||
|
||||
/**
|
||||
* Configures the auto-association status of this Passpoint configuration. A value of true
|
||||
* indicates that the configuration will be considered for auto-connection, a value of false
|
||||
@@ -462,6 +477,16 @@ public final class PasspointConfiguration implements Parcelable {
|
||||
mIsMacRandomizationEnabled = enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the metered override setting for this Passpoint configuration.
|
||||
*
|
||||
* @param meteredOverride One of the values in {@link MeteredOverride}
|
||||
* @hide
|
||||
*/
|
||||
public void setMeteredOverride(@MeteredOverride int meteredOverride) {
|
||||
mMeteredOverride = meteredOverride;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether the Passpoint configuration may be auto-connected to by the framework. A
|
||||
* value of true indicates that auto-connection can happen, a value of false indicates that it
|
||||
@@ -477,6 +502,18 @@ public final class PasspointConfiguration implements Parcelable {
|
||||
return mIsAutoJoinEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether the user chose this configuration to be treated as metered or not.
|
||||
*
|
||||
* @return One of the values in {@link MeteredOverride}
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
@MeteredOverride
|
||||
public int getMeteredOverride() {
|
||||
return mMeteredOverride;
|
||||
}
|
||||
|
||||
/**
|
||||
* Indicates whether a randomized MAC address or device MAC address will be used for
|
||||
* connections to this Passpoint network. If true, a randomized MAC address will be used.
|
||||
@@ -534,6 +571,7 @@ public final class PasspointConfiguration implements Parcelable {
|
||||
mCarrierId = source.mCarrierId;
|
||||
mIsAutoJoinEnabled = source.mIsAutoJoinEnabled;
|
||||
mIsMacRandomizationEnabled = source.mIsMacRandomizationEnabled;
|
||||
mMeteredOverride = source.mMeteredOverride;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -565,6 +603,7 @@ public final class PasspointConfiguration implements Parcelable {
|
||||
dest.writeInt(mCarrierId);
|
||||
dest.writeBoolean(mIsAutoJoinEnabled);
|
||||
dest.writeBoolean(mIsMacRandomizationEnabled);
|
||||
dest.writeInt(mMeteredOverride);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -597,6 +636,7 @@ public final class PasspointConfiguration implements Parcelable {
|
||||
&& mCarrierId == that.mCarrierId
|
||||
&& mIsAutoJoinEnabled == that.mIsAutoJoinEnabled
|
||||
&& mIsMacRandomizationEnabled == that.mIsMacRandomizationEnabled
|
||||
&& mMeteredOverride == that.mMeteredOverride
|
||||
&& (mServiceFriendlyNames == null ? that.mServiceFriendlyNames == null
|
||||
: mServiceFriendlyNames.equals(that.mServiceFriendlyNames));
|
||||
}
|
||||
@@ -607,7 +647,8 @@ public final class PasspointConfiguration implements Parcelable {
|
||||
mUpdateIdentifier, mCredentialPriority, mSubscriptionCreationTimeInMillis,
|
||||
mSubscriptionExpirationTimeInMillis, mUsageLimitUsageTimePeriodInMinutes,
|
||||
mUsageLimitStartTimeInMillis, mUsageLimitDataLimit, mUsageLimitTimeLimitInMinutes,
|
||||
mServiceFriendlyNames, mCarrierId, mIsAutoJoinEnabled, mIsMacRandomizationEnabled);
|
||||
mServiceFriendlyNames, mCarrierId, mIsAutoJoinEnabled, mIsMacRandomizationEnabled,
|
||||
mMeteredOverride);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -663,6 +704,7 @@ public final class PasspointConfiguration implements Parcelable {
|
||||
builder.append("CarrierId:" + mCarrierId);
|
||||
builder.append("IsAutoJoinEnabled:" + mIsAutoJoinEnabled);
|
||||
builder.append("mIsMacRandomizationEnabled:" + mIsMacRandomizationEnabled);
|
||||
builder.append("mMeteredOverride:" + mMeteredOverride);
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
@@ -770,6 +812,7 @@ public final class PasspointConfiguration implements Parcelable {
|
||||
config.mCarrierId = in.readInt();
|
||||
config.mIsAutoJoinEnabled = in.readBoolean();
|
||||
config.mIsMacRandomizationEnabled = in.readBoolean();
|
||||
config.mMeteredOverride = in.readInt();
|
||||
return config;
|
||||
}
|
||||
|
||||
|
||||
@@ -197,6 +197,11 @@ public class BaseWifiService extends IWifiManager.Stub {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMeteredOverridePasspoint(String fqdn, int meteredOverride) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean startScan(String packageName, String featureId) {
|
||||
throw new UnsupportedOperationException();
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package android.net.wifi;
|
||||
|
||||
import static android.net.wifi.WifiConfiguration.METERED_OVERRIDE_METERED;
|
||||
import static android.net.wifi.WifiManager.ActionListener;
|
||||
import static android.net.wifi.WifiManager.BUSY;
|
||||
import static android.net.wifi.WifiManager.ERROR;
|
||||
@@ -1796,6 +1797,16 @@ public class WifiManagerTest {
|
||||
verify(mWifiService).setMacRandomizationSettingPasspointEnabled(fqdn, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test behavior of
|
||||
* {@link WifiManager#setMacRandomizationSettingPasspointEnabled(String, boolean)}
|
||||
*/
|
||||
@Test
|
||||
public void testSetMeteredOverridePasspoint() throws Exception {
|
||||
final String fqdn = "FullyQualifiedDomainName";
|
||||
mWifiManager.setMeteredOverridePasspoint(fqdn, METERED_OVERRIDE_METERED);
|
||||
verify(mWifiService).setMeteredOverridePasspoint(fqdn, METERED_OVERRIDE_METERED);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test behavior of {@link WifiManager#disconnect()}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package android.net.wifi.hotspot2;
|
||||
|
||||
import static android.net.wifi.WifiConfiguration.METERED_OVERRIDE_NONE;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
@@ -173,6 +175,7 @@ public class PasspointConfigurationTest {
|
||||
assertFalse(config.validateForR2());
|
||||
assertTrue(config.isAutoJoinEnabled());
|
||||
assertTrue(config.isMacRandomizationEnabled());
|
||||
assertTrue(config.getMeteredOverride() == METERED_OVERRIDE_NONE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user