Expose the enterprise per-profile networking API.
Also unify the listener for Oem settings, which have never been released as public API (it is slated to be released in S). Test: FrameworksNetTests Change-Id: I84ba363dd0ec03871c37b1c3a31e5557d9aa12e7
This commit is contained in:
@@ -11,6 +11,7 @@ package android.net {
|
|||||||
method @NonNull public static String getPrivateDnsMode(@NonNull android.content.ContentResolver);
|
method @NonNull public static String getPrivateDnsMode(@NonNull android.content.ContentResolver);
|
||||||
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerSystemDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
|
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_SETTINGS}) public void registerSystemDefaultNetworkCallback(@NonNull android.net.ConnectivityManager.NetworkCallback, @NonNull android.os.Handler);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void requestBackgroundNetwork(@NonNull android.net.NetworkRequest, @NonNull android.os.Handler, @NonNull android.net.ConnectivityManager.NetworkCallback);
|
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_STACK, android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK}) public void requestBackgroundNetwork(@NonNull android.net.NetworkRequest, @NonNull android.os.Handler, @NonNull android.net.ConnectivityManager.NetworkCallback);
|
||||||
|
method @RequiresPermission(android.Manifest.permission.NETWORK_STACK) public void setProfileNetworkPreference(@NonNull android.os.UserHandle, int, @Nullable java.util.concurrent.Executor, @Nullable Runnable);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_TEST_NETWORKS, android.Manifest.permission.NETWORK_STACK}) public void simulateDataStall(int, long, @NonNull android.net.Network, @NonNull android.os.PersistableBundle);
|
method @RequiresPermission(anyOf={android.Manifest.permission.MANAGE_TEST_NETWORKS, android.Manifest.permission.NETWORK_STACK}) public void simulateDataStall(int, long, @NonNull android.net.Network, @NonNull android.os.PersistableBundle);
|
||||||
field public static final String PRIVATE_DNS_MODE_OFF = "off";
|
field public static final String PRIVATE_DNS_MODE_OFF = "off";
|
||||||
field public static final String PRIVATE_DNS_MODE_OPPORTUNISTIC = "opportunistic";
|
field public static final String PRIVATE_DNS_MODE_OPPORTUNISTIC = "opportunistic";
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ package android.net {
|
|||||||
method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
|
method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void registerTetheringEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
|
||||||
method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public void requestNetwork(@NonNull android.net.NetworkRequest, int, int, @NonNull android.os.Handler, @NonNull android.net.ConnectivityManager.NetworkCallback);
|
method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public void requestNetwork(@NonNull android.net.NetworkRequest, int, int, @NonNull android.os.Handler, @NonNull android.net.ConnectivityManager.NetworkCallback);
|
||||||
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_AIRPLANE_MODE, android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void setAirplaneMode(boolean);
|
method @RequiresPermission(anyOf={android.Manifest.permission.NETWORK_AIRPLANE_MODE, android.Manifest.permission.NETWORK_SETTINGS, android.Manifest.permission.NETWORK_SETUP_WIZARD, android.Manifest.permission.NETWORK_STACK}) public void setAirplaneMode(boolean);
|
||||||
method @RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE) public void setOemNetworkPreference(@NonNull android.net.OemNetworkPreferences, @Nullable java.util.concurrent.Executor, @Nullable android.net.ConnectivityManager.OnSetOemNetworkPreferenceListener);
|
method @RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE) public void setOemNetworkPreference(@NonNull android.net.OemNetworkPreferences, @Nullable java.util.concurrent.Executor, @Nullable Runnable);
|
||||||
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public boolean shouldAvoidBadWifi();
|
method @RequiresPermission(anyOf={android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK, android.Manifest.permission.NETWORK_STACK}) public boolean shouldAvoidBadWifi();
|
||||||
method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public void startCaptivePortalApp(@NonNull android.net.Network, @NonNull android.os.Bundle);
|
method @RequiresPermission(android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK) public void startCaptivePortalApp(@NonNull android.net.Network, @NonNull android.os.Bundle);
|
||||||
method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback);
|
method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void startTethering(int, boolean, android.net.ConnectivityManager.OnStartTetheringCallback);
|
||||||
@@ -67,6 +67,8 @@ package android.net {
|
|||||||
method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void unregisterTetheringEventCallback(@NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
|
method @Deprecated @RequiresPermission(android.Manifest.permission.TETHER_PRIVILEGED) public void unregisterTetheringEventCallback(@NonNull android.net.ConnectivityManager.OnTetheringEventCallback);
|
||||||
field public static final String EXTRA_CAPTIVE_PORTAL_PROBE_SPEC = "android.net.extra.CAPTIVE_PORTAL_PROBE_SPEC";
|
field public static final String EXTRA_CAPTIVE_PORTAL_PROBE_SPEC = "android.net.extra.CAPTIVE_PORTAL_PROBE_SPEC";
|
||||||
field public static final String EXTRA_CAPTIVE_PORTAL_USER_AGENT = "android.net.extra.CAPTIVE_PORTAL_USER_AGENT";
|
field public static final String EXTRA_CAPTIVE_PORTAL_USER_AGENT = "android.net.extra.CAPTIVE_PORTAL_USER_AGENT";
|
||||||
|
field public static final int PROFILE_NETWORK_PREFERENCE_DEFAULT = 0; // 0x0
|
||||||
|
field public static final int PROFILE_NETWORK_PREFERENCE_ENTERPRISE = 1; // 0x1
|
||||||
field public static final int TETHERING_BLUETOOTH = 2; // 0x2
|
field public static final int TETHERING_BLUETOOTH = 2; // 0x2
|
||||||
field public static final int TETHERING_USB = 1; // 0x1
|
field public static final int TETHERING_USB = 1; // 0x1
|
||||||
field public static final int TETHERING_WIFI = 0; // 0x0
|
field public static final int TETHERING_WIFI = 0; // 0x0
|
||||||
@@ -78,10 +80,6 @@ package android.net {
|
|||||||
field @Deprecated public static final int TYPE_WIFI_P2P = 13; // 0xd
|
field @Deprecated public static final int TYPE_WIFI_P2P = 13; // 0xd
|
||||||
}
|
}
|
||||||
|
|
||||||
public static interface ConnectivityManager.OnSetOemNetworkPreferenceListener {
|
|
||||||
method public void onComplete();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Deprecated public abstract static class ConnectivityManager.OnStartTetheringCallback {
|
@Deprecated public abstract static class ConnectivityManager.OnStartTetheringCallback {
|
||||||
ctor @Deprecated public ConnectivityManager.OnStartTetheringCallback();
|
ctor @Deprecated public ConnectivityManager.OnStartTetheringCallback();
|
||||||
method @Deprecated public void onTetheringFailed();
|
method @Deprecated public void onTetheringFailed();
|
||||||
|
|||||||
@@ -976,7 +976,7 @@ public class ConnectivityManager {
|
|||||||
* Specify that the traffic for this user should by follow the default rules.
|
* Specify that the traffic for this user should by follow the default rules.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
// TODO : @SystemApi
|
@SystemApi
|
||||||
public static final int PROFILE_NETWORK_PREFERENCE_DEFAULT = 0;
|
public static final int PROFILE_NETWORK_PREFERENCE_DEFAULT = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -986,7 +986,7 @@ public class ConnectivityManager {
|
|||||||
* if no such network is available.
|
* if no such network is available.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
// TODO : @SystemApi
|
@SystemApi
|
||||||
public static final int PROFILE_NETWORK_PREFERENCE_ENTERPRISE = 1;
|
public static final int PROFILE_NETWORK_PREFERENCE_ENTERPRISE = 1;
|
||||||
|
|
||||||
/** @hide */
|
/** @hide */
|
||||||
@@ -5076,21 +5076,6 @@ public class ConnectivityManager {
|
|||||||
TYPE_NONE, new CallbackHandler(handler));
|
TYPE_NONE, new CallbackHandler(handler));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Listener for {@link #setOemNetworkPreference(OemNetworkPreferences, Executor,
|
|
||||||
* OnSetOemNetworkPreferenceListener)}.
|
|
||||||
* @hide
|
|
||||||
*/
|
|
||||||
// TODO : remove this in favor of a vanilla runnable to follow API guidance to use
|
|
||||||
// functional interfaces when they are appropriate.
|
|
||||||
@SystemApi
|
|
||||||
public interface OnSetOemNetworkPreferenceListener {
|
|
||||||
/**
|
|
||||||
* Called when setOemNetworkPreference() successfully completes.
|
|
||||||
*/
|
|
||||||
void onComplete();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used by automotive devices to set the network preferences used to direct traffic at an
|
* Used by automotive devices to set the network preferences used to direct traffic at an
|
||||||
* application level as per the given OemNetworkPreferences. An example use-case would be an
|
* application level as per the given OemNetworkPreferences. An example use-case would be an
|
||||||
@@ -5113,16 +5098,16 @@ public class ConnectivityManager {
|
|||||||
@RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE)
|
@RequiresPermission(android.Manifest.permission.CONTROL_OEM_PAID_NETWORK_PREFERENCE)
|
||||||
public void setOemNetworkPreference(@NonNull final OemNetworkPreferences preference,
|
public void setOemNetworkPreference(@NonNull final OemNetworkPreferences preference,
|
||||||
@Nullable @CallbackExecutor final Executor executor,
|
@Nullable @CallbackExecutor final Executor executor,
|
||||||
@Nullable final OnSetOemNetworkPreferenceListener listener) {
|
@Nullable final Runnable listener) {
|
||||||
Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null");
|
Objects.requireNonNull(preference, "OemNetworkPreferences must be non-null");
|
||||||
if (null != listener) {
|
if (null != listener) {
|
||||||
Objects.requireNonNull(executor, "Executor must be non-null");
|
Objects.requireNonNull(executor, "Executor must be non-null");
|
||||||
}
|
}
|
||||||
final IOnSetOemNetworkPreferenceListener listenerInternal = listener == null ? null :
|
final IOnCompleteListener listenerInternal = listener == null ? null :
|
||||||
new IOnSetOemNetworkPreferenceListener.Stub() {
|
new IOnCompleteListener.Stub() {
|
||||||
@Override
|
@Override
|
||||||
public void onComplete() {
|
public void onComplete() {
|
||||||
executor.execute(listener::onComplete);
|
executor.execute(listener::run);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -5148,7 +5133,12 @@ public class ConnectivityManager {
|
|||||||
* @throws SecurityException if missing the appropriate permissions.
|
* @throws SecurityException if missing the appropriate permissions.
|
||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
// TODO : @SystemApi
|
// This function is for establishing per-profile default networking and can only be called by
|
||||||
|
// the device policy manager, running as the system server. It would make no sense to call it
|
||||||
|
// on a context for a user because it does not establish a setting on behalf of a user, rather
|
||||||
|
// it establishes a setting for a user on behalf of the DPM.
|
||||||
|
@SuppressLint({"UserHandle"})
|
||||||
|
@SystemApi(client = MODULE_LIBRARIES)
|
||||||
@RequiresPermission(android.Manifest.permission.NETWORK_STACK)
|
@RequiresPermission(android.Manifest.permission.NETWORK_STACK)
|
||||||
public void setProfileNetworkPreference(@NonNull final UserHandle profile,
|
public void setProfileNetworkPreference(@NonNull final UserHandle profile,
|
||||||
@ProfileNetworkPreference final int preference,
|
@ProfileNetworkPreference final int preference,
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import android.net.ConnectionInfo;
|
|||||||
import android.net.ConnectivityDiagnosticsManager;
|
import android.net.ConnectivityDiagnosticsManager;
|
||||||
import android.net.IConnectivityDiagnosticsCallback;
|
import android.net.IConnectivityDiagnosticsCallback;
|
||||||
import android.net.IOnCompleteListener;
|
import android.net.IOnCompleteListener;
|
||||||
import android.net.IOnSetOemNetworkPreferenceListener;
|
|
||||||
import android.net.INetworkActivityListener;
|
import android.net.INetworkActivityListener;
|
||||||
import android.net.IQosCallback;
|
import android.net.IQosCallback;
|
||||||
import android.net.ISocketKeepaliveCallback;
|
import android.net.ISocketKeepaliveCallback;
|
||||||
@@ -217,7 +216,7 @@ interface IConnectivityManager
|
|||||||
void unregisterQosCallback(in IQosCallback callback);
|
void unregisterQosCallback(in IQosCallback callback);
|
||||||
|
|
||||||
void setOemNetworkPreference(in OemNetworkPreferences preference,
|
void setOemNetworkPreference(in OemNetworkPreferences preference,
|
||||||
in IOnSetOemNetworkPreferenceListener listener);
|
in IOnCompleteListener listener);
|
||||||
|
|
||||||
void setProfileNetworkPreference(in UserHandle profile, int preference,
|
void setProfileNetworkPreference(in UserHandle profile, int preference,
|
||||||
in IOnCompleteListener listener);
|
in IOnCompleteListener listener);
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
/**
|
|
||||||
*
|
|
||||||
* Copyright (C) 2021 The Android Open Source Project
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package android.net;
|
|
||||||
|
|
||||||
/** @hide */
|
|
||||||
oneway interface IOnSetOemNetworkPreferenceListener {
|
|
||||||
void onComplete();
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user