Merge "Replace ConnectivityManager constants to TetheringManager" am: 0728d22b39 am: 13a0da47dc
Change-Id: I91a18dbef23d4f3a4b0c068e61e9a236ecae877f
This commit is contained in:
@@ -363,7 +363,7 @@ public class ConnectivityManager {
|
||||
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
|
||||
@UnsupportedAppUsage
|
||||
public static final String ACTION_TETHER_STATE_CHANGED =
|
||||
"android.net.conn.TETHER_STATE_CHANGED";
|
||||
TetheringManager.ACTION_TETHER_STATE_CHANGED;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
@@ -371,14 +371,14 @@ public class ConnectivityManager {
|
||||
* tethering and currently available for tethering.
|
||||
*/
|
||||
@UnsupportedAppUsage
|
||||
public static final String EXTRA_AVAILABLE_TETHER = "availableArray";
|
||||
public static final String EXTRA_AVAILABLE_TETHER = TetheringManager.EXTRA_AVAILABLE_TETHER;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
* gives a String[] listing all the interfaces currently in local-only
|
||||
* mode (ie, has DHCPv4+IPv6-ULA support and no packet forwarding)
|
||||
*/
|
||||
public static final String EXTRA_ACTIVE_LOCAL_ONLY = "localOnlyArray";
|
||||
public static final String EXTRA_ACTIVE_LOCAL_ONLY = TetheringManager.EXTRA_ACTIVE_LOCAL_ONLY;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
@@ -386,7 +386,7 @@ public class ConnectivityManager {
|
||||
* (ie, has DHCPv4 support and packets potentially forwarded/NATed)
|
||||
*/
|
||||
@UnsupportedAppUsage
|
||||
public static final String EXTRA_ACTIVE_TETHER = "tetherArray";
|
||||
public static final String EXTRA_ACTIVE_TETHER = TetheringManager.EXTRA_ACTIVE_TETHER;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
@@ -395,7 +395,7 @@ public class ConnectivityManager {
|
||||
* for any interfaces listed here.
|
||||
*/
|
||||
@UnsupportedAppUsage
|
||||
public static final String EXTRA_ERRORED_TETHER = "erroredArray";
|
||||
public static final String EXTRA_ERRORED_TETHER = TetheringManager.EXTRA_ERRORED_TETHER;
|
||||
|
||||
/**
|
||||
* Broadcast Action: The captive portal tracker has finished its test.
|
||||
@@ -445,7 +445,7 @@ public class ConnectivityManager {
|
||||
* @see #startTethering(int, boolean, OnStartTetheringCallback)
|
||||
* @hide
|
||||
*/
|
||||
public static final int TETHERING_INVALID = -1;
|
||||
public static final int TETHERING_INVALID = TetheringManager.TETHERING_INVALID;
|
||||
|
||||
/**
|
||||
* Wifi tethering type.
|
||||
@@ -453,7 +453,7 @@ public class ConnectivityManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int TETHERING_WIFI = 0;
|
||||
public static final int TETHERING_WIFI = TetheringManager.TETHERING_WIFI;
|
||||
|
||||
/**
|
||||
* USB tethering type.
|
||||
@@ -461,7 +461,7 @@ public class ConnectivityManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int TETHERING_USB = 1;
|
||||
public static final int TETHERING_USB = TetheringManager.TETHERING_USB;
|
||||
|
||||
/**
|
||||
* Bluetooth tethering type.
|
||||
@@ -469,7 +469,7 @@ public class ConnectivityManager {
|
||||
* @hide
|
||||
*/
|
||||
@SystemApi
|
||||
public static final int TETHERING_BLUETOOTH = 2;
|
||||
public static final int TETHERING_BLUETOOTH = TetheringManager.TETHERING_BLUETOOTH;
|
||||
|
||||
/**
|
||||
* Wifi P2p tethering type.
|
||||
@@ -477,41 +477,41 @@ public class ConnectivityManager {
|
||||
* need to start from #startTethering(int, boolean, OnStartTetheringCallback).
|
||||
* @hide
|
||||
*/
|
||||
public static final int TETHERING_WIFI_P2P = 3;
|
||||
public static final int TETHERING_WIFI_P2P = TetheringManager.TETHERING_WIFI_P2P;
|
||||
|
||||
/**
|
||||
* Extra used for communicating with the TetherService. Includes the type of tethering to
|
||||
* enable if any.
|
||||
* @hide
|
||||
*/
|
||||
public static final String EXTRA_ADD_TETHER_TYPE = "extraAddTetherType";
|
||||
public static final String EXTRA_ADD_TETHER_TYPE = TetheringManager.EXTRA_ADD_TETHER_TYPE;
|
||||
|
||||
/**
|
||||
* Extra used for communicating with the TetherService. Includes the type of tethering for
|
||||
* which to cancel provisioning.
|
||||
* @hide
|
||||
*/
|
||||
public static final String EXTRA_REM_TETHER_TYPE = "extraRemTetherType";
|
||||
public static final String EXTRA_REM_TETHER_TYPE = TetheringManager.EXTRA_REM_TETHER_TYPE;
|
||||
|
||||
/**
|
||||
* Extra used for communicating with the TetherService. True to schedule a recheck of tether
|
||||
* provisioning.
|
||||
* @hide
|
||||
*/
|
||||
public static final String EXTRA_SET_ALARM = "extraSetAlarm";
|
||||
public static final String EXTRA_SET_ALARM = TetheringManager.EXTRA_SET_ALARM;
|
||||
|
||||
/**
|
||||
* Tells the TetherService to run a provision check now.
|
||||
* @hide
|
||||
*/
|
||||
public static final String EXTRA_RUN_PROVISION = "extraRunProvision";
|
||||
public static final String EXTRA_RUN_PROVISION = TetheringManager.EXTRA_RUN_PROVISION;
|
||||
|
||||
/**
|
||||
* Extra used for communicating with the TetherService. Contains the {@link ResultReceiver}
|
||||
* which will receive provisioning results. Can be left empty.
|
||||
* @hide
|
||||
*/
|
||||
public static final String EXTRA_PROVISION_CALLBACK = "extraProvisionCallback";
|
||||
public static final String EXTRA_PROVISION_CALLBACK = TetheringManager.EXTRA_PROVISION_CALLBACK;
|
||||
|
||||
/**
|
||||
* The absence of a connection type.
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
*/
|
||||
package android.net;
|
||||
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_NO_ERROR;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.content.Context;
|
||||
import android.net.ConnectivityManager.OnTetheringEventCallback;
|
||||
@@ -52,6 +50,103 @@ public class TetheringManager {
|
||||
private TetheringConfigurationParcel mTetheringConfiguration;
|
||||
private TetherStatesParcel mTetherStatesParcel;
|
||||
|
||||
/**
|
||||
* Broadcast Action: A tetherable connection has come or gone.
|
||||
* Uses {@code TetheringManager.EXTRA_AVAILABLE_TETHER},
|
||||
* {@code TetheringManager.EXTRA_ACTIVE_LOCAL_ONLY},
|
||||
* {@code TetheringManager.EXTRA_ACTIVE_TETHER}, and
|
||||
* {@code TetheringManager.EXTRA_ERRORED_TETHER} to indicate
|
||||
* the current state of tethering. Each include a list of
|
||||
* interface names in that state (may be empty).
|
||||
*/
|
||||
public static final String ACTION_TETHER_STATE_CHANGED =
|
||||
"android.net.conn.TETHER_STATE_CHANGED";
|
||||
|
||||
/**
|
||||
* gives a String[] listing all the interfaces configured for
|
||||
* tethering and currently available for tethering.
|
||||
*/
|
||||
public static final String EXTRA_AVAILABLE_TETHER = "availableArray";
|
||||
|
||||
/**
|
||||
* gives a String[] listing all the interfaces currently in local-only
|
||||
* mode (ie, has DHCPv4+IPv6-ULA support and no packet forwarding)
|
||||
*/
|
||||
public static final String EXTRA_ACTIVE_LOCAL_ONLY = "localOnlyArray";
|
||||
|
||||
/**
|
||||
* gives a String[] listing all the interfaces currently tethered
|
||||
* (ie, has DHCPv4 support and packets potentially forwarded/NATed)
|
||||
*/
|
||||
public static final String EXTRA_ACTIVE_TETHER = "tetherArray";
|
||||
|
||||
/**
|
||||
* gives a String[] listing all the interfaces we tried to tether and
|
||||
* failed. Use {@link #getLastTetherError} to find the error code
|
||||
* for any interfaces listed here.
|
||||
*/
|
||||
public static final String EXTRA_ERRORED_TETHER = "erroredArray";
|
||||
|
||||
/**
|
||||
* Invalid tethering type.
|
||||
* @see #startTethering.
|
||||
*/
|
||||
public static final int TETHERING_INVALID = -1;
|
||||
|
||||
/**
|
||||
* Wifi tethering type.
|
||||
* @see #startTethering.
|
||||
*/
|
||||
public static final int TETHERING_WIFI = 0;
|
||||
|
||||
/**
|
||||
* USB tethering type.
|
||||
* @see #startTethering.
|
||||
*/
|
||||
public static final int TETHERING_USB = 1;
|
||||
|
||||
/**
|
||||
* Bluetooth tethering type.
|
||||
* @see #startTethering.
|
||||
*/
|
||||
public static final int TETHERING_BLUETOOTH = 2;
|
||||
|
||||
/**
|
||||
* Wifi P2p tethering type.
|
||||
* Wifi P2p tethering is set through events automatically, and don't
|
||||
* need to start from #startTethering.
|
||||
*/
|
||||
public static final int TETHERING_WIFI_P2P = 3;
|
||||
|
||||
/**
|
||||
* Extra used for communicating with the TetherService. Includes the type of tethering to
|
||||
* enable if any.
|
||||
*/
|
||||
public static final String EXTRA_ADD_TETHER_TYPE = "extraAddTetherType";
|
||||
|
||||
/**
|
||||
* Extra used for communicating with the TetherService. Includes the type of tethering for
|
||||
* which to cancel provisioning.
|
||||
*/
|
||||
public static final String EXTRA_REM_TETHER_TYPE = "extraRemTetherType";
|
||||
|
||||
/**
|
||||
* Extra used for communicating with the TetherService. True to schedule a recheck of tether
|
||||
* provisioning.
|
||||
*/
|
||||
public static final String EXTRA_SET_ALARM = "extraSetAlarm";
|
||||
|
||||
/**
|
||||
* Tells the TetherService to run a provision check now.
|
||||
*/
|
||||
public static final String EXTRA_RUN_PROVISION = "extraRunProvision";
|
||||
|
||||
/**
|
||||
* Extra used for communicating with the TetherService. Contains the {@link ResultReceiver}
|
||||
* which will receive provisioning results. Can be left empty.
|
||||
*/
|
||||
public static final String EXTRA_PROVISION_CALLBACK = "extraProvisionCallback";
|
||||
|
||||
public static final int TETHER_ERROR_NO_ERROR = 0;
|
||||
public static final int TETHER_ERROR_UNKNOWN_IFACE = 1;
|
||||
public static final int TETHER_ERROR_SERVICE_UNAVAIL = 2;
|
||||
@@ -470,7 +565,7 @@ public class TetheringManager {
|
||||
* failed. Re-attempting to tether may cause them to reset to the Tethered
|
||||
* state. Alternatively, causing the interface to be destroyed and recreated
|
||||
* may cause them to reset to the available state.
|
||||
* {@link ConnectivityManager#getLastTetherError} can be used to get more
|
||||
* {@link TetheringManager#getLastTetherError} can be used to get more
|
||||
* information on the cause of the errors.
|
||||
*
|
||||
* @return an array of 0 or more String indicating the interface names
|
||||
|
||||
@@ -24,7 +24,6 @@ import static android.net.util.NetworkConstants.RFC7421_PREFIX_LENGTH;
|
||||
import static android.net.util.NetworkConstants.asByte;
|
||||
import static android.net.util.TetheringMessageBase.BASE_IPSERVER;
|
||||
|
||||
import android.net.ConnectivityManager;
|
||||
import android.net.INetd;
|
||||
import android.net.INetworkStackStatusCallback;
|
||||
import android.net.INetworkStatsService;
|
||||
@@ -32,6 +31,7 @@ import android.net.IpPrefix;
|
||||
import android.net.LinkAddress;
|
||||
import android.net.LinkProperties;
|
||||
import android.net.RouteInfo;
|
||||
import android.net.TetheringManager;
|
||||
import android.net.dhcp.DhcpServerCallbacks;
|
||||
import android.net.dhcp.DhcpServingParamsParcel;
|
||||
import android.net.dhcp.DhcpServingParamsParcelExt;
|
||||
@@ -118,7 +118,7 @@ public class IpServer extends StateMachine {
|
||||
*
|
||||
* @param who the calling instance of IpServer
|
||||
* @param state one of STATE_*
|
||||
* @param lastError one of ConnectivityManager.TETHER_ERROR_*
|
||||
* @param lastError one of TetheringManager.TETHER_ERROR_*
|
||||
*/
|
||||
public void updateInterfaceState(IpServer who, int state, int lastError) { }
|
||||
|
||||
@@ -222,7 +222,7 @@ public class IpServer extends StateMachine {
|
||||
mUsingLegacyDhcp = usingLegacyDhcp;
|
||||
mDeps = deps;
|
||||
resetLinkProperties();
|
||||
mLastError = ConnectivityManager.TETHER_ERROR_NO_ERROR;
|
||||
mLastError = TetheringManager.TETHER_ERROR_NO_ERROR;
|
||||
mServingMode = STATE_AVAILABLE;
|
||||
|
||||
mInitialState = new InitialState();
|
||||
@@ -243,7 +243,7 @@ public class IpServer extends StateMachine {
|
||||
}
|
||||
|
||||
/**
|
||||
* Tethering downstream type. It would be one of ConnectivityManager#TETHERING_*.
|
||||
* Tethering downstream type. It would be one of TetheringManager#TETHERING_*.
|
||||
*/
|
||||
public int interfaceType() {
|
||||
return mInterfaceType;
|
||||
@@ -347,7 +347,7 @@ public class IpServer extends StateMachine {
|
||||
}
|
||||
|
||||
private void handleError() {
|
||||
mLastError = ConnectivityManager.TETHER_ERROR_DHCPSERVER_ERROR;
|
||||
mLastError = TetheringManager.TETHER_ERROR_DHCPSERVER_ERROR;
|
||||
transitionTo(mInitialState);
|
||||
}
|
||||
}
|
||||
@@ -382,7 +382,7 @@ public class IpServer extends StateMachine {
|
||||
public void callback(int statusCode) {
|
||||
if (statusCode != STATUS_SUCCESS) {
|
||||
mLog.e("Error stopping DHCP server: " + statusCode);
|
||||
mLastError = ConnectivityManager.TETHER_ERROR_DHCPSERVER_ERROR;
|
||||
mLastError = TetheringManager.TETHER_ERROR_DHCPSERVER_ERROR;
|
||||
// Not much more we can do here
|
||||
}
|
||||
}
|
||||
@@ -420,13 +420,13 @@ public class IpServer extends StateMachine {
|
||||
final Inet4Address srvAddr;
|
||||
int prefixLen = 0;
|
||||
try {
|
||||
if (mInterfaceType == ConnectivityManager.TETHERING_USB) {
|
||||
if (mInterfaceType == TetheringManager.TETHERING_USB) {
|
||||
srvAddr = (Inet4Address) parseNumericAddress(USB_NEAR_IFACE_ADDR);
|
||||
prefixLen = USB_PREFIX_LENGTH;
|
||||
} else if (mInterfaceType == ConnectivityManager.TETHERING_WIFI) {
|
||||
} else if (mInterfaceType == TetheringManager.TETHERING_WIFI) {
|
||||
srvAddr = (Inet4Address) parseNumericAddress(getRandomWifiIPv4Address());
|
||||
prefixLen = WIFI_HOST_IFACE_PREFIX_LENGTH;
|
||||
} else if (mInterfaceType == ConnectivityManager.TETHERING_WIFI_P2P) {
|
||||
} else if (mInterfaceType == TetheringManager.TETHERING_WIFI_P2P) {
|
||||
srvAddr = (Inet4Address) parseNumericAddress(WIFI_P2P_IFACE_ADDR);
|
||||
prefixLen = WIFI_P2P_IFACE_PREFIX_LENGTH;
|
||||
} else {
|
||||
@@ -445,7 +445,7 @@ public class IpServer extends StateMachine {
|
||||
}
|
||||
|
||||
final Boolean setIfaceUp;
|
||||
if (mInterfaceType == ConnectivityManager.TETHERING_WIFI) {
|
||||
if (mInterfaceType == TetheringManager.TETHERING_WIFI) {
|
||||
// The WiFi stack has ownership of the interface up/down state.
|
||||
// It is unclear whether the Bluetooth or USB stacks will manage their own
|
||||
// state.
|
||||
@@ -710,7 +710,7 @@ public class IpServer extends StateMachine {
|
||||
logMessage(this, message.what);
|
||||
switch (message.what) {
|
||||
case CMD_TETHER_REQUESTED:
|
||||
mLastError = ConnectivityManager.TETHER_ERROR_NO_ERROR;
|
||||
mLastError = TetheringManager.TETHER_ERROR_NO_ERROR;
|
||||
switch (message.arg1) {
|
||||
case STATE_LOCAL_ONLY:
|
||||
transitionTo(mLocalHotspotState);
|
||||
@@ -739,7 +739,7 @@ public class IpServer extends StateMachine {
|
||||
@Override
|
||||
public void enter() {
|
||||
if (!startIPv4()) {
|
||||
mLastError = ConnectivityManager.TETHER_ERROR_IFACE_CFG_ERROR;
|
||||
mLastError = TetheringManager.TETHER_ERROR_IFACE_CFG_ERROR;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -749,7 +749,7 @@ public class IpServer extends StateMachine {
|
||||
NetdUtils.tetherInterface(mNetd, mIfaceName, ipv4Prefix);
|
||||
} catch (RemoteException | ServiceSpecificException e) {
|
||||
mLog.e("Error Tethering: " + e);
|
||||
mLastError = ConnectivityManager.TETHER_ERROR_TETHER_IFACE_ERROR;
|
||||
mLastError = TetheringManager.TETHER_ERROR_TETHER_IFACE_ERROR;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -770,7 +770,7 @@ public class IpServer extends StateMachine {
|
||||
try {
|
||||
NetdUtils.untetherInterface(mNetd, mIfaceName);
|
||||
} catch (RemoteException | ServiceSpecificException e) {
|
||||
mLastError = ConnectivityManager.TETHER_ERROR_UNTETHER_IFACE_ERROR;
|
||||
mLastError = TetheringManager.TETHER_ERROR_UNTETHER_IFACE_ERROR;
|
||||
mLog.e("Failed to untether interface: " + e);
|
||||
}
|
||||
|
||||
@@ -800,7 +800,7 @@ public class IpServer extends StateMachine {
|
||||
case CMD_START_TETHERING_ERROR:
|
||||
case CMD_STOP_TETHERING_ERROR:
|
||||
case CMD_SET_DNS_FORWARDERS_ERROR:
|
||||
mLastError = ConnectivityManager.TETHER_ERROR_MASTER_ERROR;
|
||||
mLastError = TetheringManager.TETHER_ERROR_MASTER_ERROR;
|
||||
transitionTo(mInitialState);
|
||||
break;
|
||||
default:
|
||||
@@ -819,7 +819,7 @@ public class IpServer extends StateMachine {
|
||||
@Override
|
||||
public void enter() {
|
||||
super.enter();
|
||||
if (mLastError != ConnectivityManager.TETHER_ERROR_NO_ERROR) {
|
||||
if (mLastError != TetheringManager.TETHER_ERROR_NO_ERROR) {
|
||||
transitionTo(mInitialState);
|
||||
}
|
||||
|
||||
@@ -855,7 +855,7 @@ public class IpServer extends StateMachine {
|
||||
@Override
|
||||
public void enter() {
|
||||
super.enter();
|
||||
if (mLastError != ConnectivityManager.TETHER_ERROR_NO_ERROR) {
|
||||
if (mLastError != TetheringManager.TETHER_ERROR_NO_ERROR) {
|
||||
transitionTo(mInitialState);
|
||||
}
|
||||
|
||||
@@ -936,7 +936,7 @@ public class IpServer extends StateMachine {
|
||||
} catch (RemoteException | ServiceSpecificException e) {
|
||||
mLog.e("Exception enabling NAT: " + e.toString());
|
||||
cleanupUpstream();
|
||||
mLastError = ConnectivityManager.TETHER_ERROR_ENABLE_NAT_ERROR;
|
||||
mLastError = TetheringManager.TETHER_ERROR_ENABLE_NAT_ERROR;
|
||||
transitionTo(mInitialState);
|
||||
return true;
|
||||
}
|
||||
@@ -981,7 +981,7 @@ public class IpServer extends StateMachine {
|
||||
class UnavailableState extends State {
|
||||
@Override
|
||||
public void enter() {
|
||||
mLastError = ConnectivityManager.TETHER_ERROR_NO_ERROR;
|
||||
mLastError = TetheringManager.TETHER_ERROR_NO_ERROR;
|
||||
sendInterfaceState(STATE_UNAVAILABLE);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,16 +16,16 @@
|
||||
|
||||
package com.android.server.connectivity.tethering;
|
||||
|
||||
import static android.net.ConnectivityManager.EXTRA_ADD_TETHER_TYPE;
|
||||
import static android.net.ConnectivityManager.EXTRA_PROVISION_CALLBACK;
|
||||
import static android.net.ConnectivityManager.EXTRA_RUN_PROVISION;
|
||||
import static android.net.ConnectivityManager.TETHERING_BLUETOOTH;
|
||||
import static android.net.ConnectivityManager.TETHERING_INVALID;
|
||||
import static android.net.ConnectivityManager.TETHERING_USB;
|
||||
import static android.net.ConnectivityManager.TETHERING_WIFI;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_ENTITLEMENT_UNKONWN;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_NO_ERROR;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_PROVISION_FAILED;
|
||||
import static android.net.TetheringManager.EXTRA_ADD_TETHER_TYPE;
|
||||
import static android.net.TetheringManager.EXTRA_PROVISION_CALLBACK;
|
||||
import static android.net.TetheringManager.EXTRA_RUN_PROVISION;
|
||||
import static android.net.TetheringManager.TETHERING_BLUETOOTH;
|
||||
import static android.net.TetheringManager.TETHERING_INVALID;
|
||||
import static android.net.TetheringManager.TETHERING_USB;
|
||||
import static android.net.TetheringManager.TETHERING_WIFI;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_ENTITLEMENT_UNKONWN;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_NO_ERROR;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_PROVISION_FAILED;
|
||||
|
||||
import static com.android.internal.R.string.config_wifi_tether_enable;
|
||||
|
||||
@@ -59,7 +59,7 @@ import java.io.PrintWriter;
|
||||
|
||||
/**
|
||||
* Re-check tethering provisioning for enabled downstream tether types.
|
||||
* Reference ConnectivityManager.TETHERING_{@code *} for each tether type.
|
||||
* Reference TetheringManager.TETHERING_{@code *} for each tether type.
|
||||
*
|
||||
* All methods of this class must be accessed from the thread of tethering
|
||||
* state machine.
|
||||
@@ -86,9 +86,9 @@ public class EntitlementManager {
|
||||
private static final int EVENT_GET_ENTITLEMENT_VALUE = 4;
|
||||
|
||||
// The ArraySet contains enabled downstream types, ex:
|
||||
// {@link ConnectivityManager.TETHERING_WIFI}
|
||||
// {@link ConnectivityManager.TETHERING_USB}
|
||||
// {@link ConnectivityManager.TETHERING_BLUETOOTH}
|
||||
// {@link TetheringManager.TETHERING_WIFI}
|
||||
// {@link TetheringManager.TETHERING_USB}
|
||||
// {@link TetheringManager.TETHERING_BLUETOOTH}
|
||||
private final ArraySet<Integer> mCurrentTethers;
|
||||
private final Context mContext;
|
||||
private final int mPermissionChangeMessageCode;
|
||||
@@ -96,8 +96,8 @@ public class EntitlementManager {
|
||||
private final SparseIntArray mEntitlementCacheValue;
|
||||
private final EntitlementHandler mHandler;
|
||||
private final StateMachine mTetherMasterSM;
|
||||
// Key: ConnectivityManager.TETHERING_*(downstream).
|
||||
// Value: ConnectivityManager.TETHER_ERROR_{NO_ERROR or PROVISION_FAILED}(provisioning result).
|
||||
// Key: TetheringManager.TETHERING_*(downstream).
|
||||
// Value: TetheringManager.TETHER_ERROR_{NO_ERROR or PROVISION_FAILED}(provisioning result).
|
||||
private final SparseIntArray mCellularPermitted;
|
||||
private PendingIntent mProvisioningRecheckAlarm;
|
||||
private boolean mCellularUpstreamPermitted = true;
|
||||
@@ -133,7 +133,7 @@ public class EntitlementManager {
|
||||
/**
|
||||
* Ui entitlement check fails in |downstream|.
|
||||
*
|
||||
* @param downstream tethering type from ConnectivityManager.TETHERING_{@code *}.
|
||||
* @param downstream tethering type from TetheringManager.TETHERING_{@code *}.
|
||||
*/
|
||||
void onUiEntitlementFailed(int downstream);
|
||||
}
|
||||
@@ -169,7 +169,7 @@ public class EntitlementManager {
|
||||
* This is called when tethering starts.
|
||||
* Launch provisioning app if upstream is cellular.
|
||||
*
|
||||
* @param downstreamType tethering type from ConnectivityManager.TETHERING_{@code *}
|
||||
* @param downstreamType tethering type from TetheringManager.TETHERING_{@code *}
|
||||
* @param showProvisioningUi a boolean indicating whether to show the
|
||||
* provisioning app UI if there is one.
|
||||
*/
|
||||
@@ -210,7 +210,7 @@ public class EntitlementManager {
|
||||
/**
|
||||
* Tell EntitlementManager that a given type of tethering has been disabled
|
||||
*
|
||||
* @param type tethering type from ConnectivityManager.TETHERING_{@code *}
|
||||
* @param type tethering type from TetheringManager.TETHERING_{@code *}
|
||||
*/
|
||||
public void stopProvisioningIfNeeded(int type) {
|
||||
mHandler.sendMessage(mHandler.obtainMessage(EVENT_STOP_PROVISIONING, type, 0));
|
||||
@@ -296,7 +296,7 @@ public class EntitlementManager {
|
||||
|
||||
/**
|
||||
* Re-check tethering provisioning for all enabled tether types.
|
||||
* Reference ConnectivityManager.TETHERING_{@code *} for each tether type.
|
||||
* Reference TetheringManager.TETHERING_{@code *} for each tether type.
|
||||
*
|
||||
* @param config an object that encapsulates the various tethering configuration elements.
|
||||
* Note: this method is only called from TetherMaster on the handler thread.
|
||||
@@ -363,7 +363,7 @@ public class EntitlementManager {
|
||||
|
||||
/**
|
||||
* Run no UI tethering provisioning check.
|
||||
* @param type tethering type from ConnectivityManager.TETHERING_{@code *}
|
||||
* @param type tethering type from TetheringManager.TETHERING_{@code *}
|
||||
* @param subId default data subscription ID.
|
||||
*/
|
||||
@VisibleForTesting
|
||||
@@ -390,7 +390,7 @@ public class EntitlementManager {
|
||||
|
||||
/**
|
||||
* Run the UI-enabled tethering provisioning check.
|
||||
* @param type tethering type from ConnectivityManager.TETHERING_{@code *}
|
||||
* @param type tethering type from TetheringManager.TETHERING_{@code *}
|
||||
* @param subId default data subscription ID.
|
||||
* @param receiver to receive entitlement check result.
|
||||
*/
|
||||
@@ -461,7 +461,7 @@ public class EntitlementManager {
|
||||
* Add the mapping between provisioning result and tethering type.
|
||||
* Notify UpstreamNetworkMonitor if Cellular permission changes.
|
||||
*
|
||||
* @param type tethering type from ConnectivityManager.TETHERING_{@code *}
|
||||
* @param type tethering type from TetheringManager.TETHERING_{@code *}
|
||||
* @param resultCode Provisioning result
|
||||
*/
|
||||
protected void addDownstreamMapping(int type, int resultCode) {
|
||||
@@ -476,7 +476,7 @@ public class EntitlementManager {
|
||||
|
||||
/**
|
||||
* Remove the mapping for input tethering type.
|
||||
* @param type tethering type from ConnectivityManager.TETHERING_{@code *}
|
||||
* @param type tethering type from TetheringManager.TETHERING_{@code *}
|
||||
*/
|
||||
protected void removeDownstreamMapping(int type) {
|
||||
mLog.i("removeDownstreamMapping: " + type);
|
||||
@@ -625,7 +625,7 @@ public class EntitlementManager {
|
||||
/**
|
||||
* Update the last entitlement value to internal cache
|
||||
*
|
||||
* @param type tethering type from ConnectivityManager.TETHERING_{@code *}
|
||||
* @param type tethering type from TetheringManager.TETHERING_{@code *}
|
||||
* @param resultCode last entitlement value
|
||||
* @return the last updated entitlement value
|
||||
*/
|
||||
|
||||
@@ -20,23 +20,23 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED;
|
||||
import static android.hardware.usb.UsbManager.USB_CONFIGURED;
|
||||
import static android.hardware.usb.UsbManager.USB_CONNECTED;
|
||||
import static android.hardware.usb.UsbManager.USB_FUNCTION_RNDIS;
|
||||
import static android.net.ConnectivityManager.ACTION_TETHER_STATE_CHANGED;
|
||||
import static android.net.ConnectivityManager.CONNECTIVITY_ACTION;
|
||||
import static android.net.ConnectivityManager.EXTRA_ACTIVE_LOCAL_ONLY;
|
||||
import static android.net.ConnectivityManager.EXTRA_ACTIVE_TETHER;
|
||||
import static android.net.ConnectivityManager.EXTRA_AVAILABLE_TETHER;
|
||||
import static android.net.ConnectivityManager.EXTRA_ERRORED_TETHER;
|
||||
import static android.net.ConnectivityManager.EXTRA_NETWORK_INFO;
|
||||
import static android.net.ConnectivityManager.TETHERING_BLUETOOTH;
|
||||
import static android.net.ConnectivityManager.TETHERING_INVALID;
|
||||
import static android.net.ConnectivityManager.TETHERING_USB;
|
||||
import static android.net.ConnectivityManager.TETHERING_WIFI;
|
||||
import static android.net.ConnectivityManager.TETHERING_WIFI_P2P;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_MASTER_ERROR;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_NO_ERROR;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_SERVICE_UNAVAIL;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_UNAVAIL_IFACE;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_UNKNOWN_IFACE;
|
||||
import static android.net.TetheringManager.ACTION_TETHER_STATE_CHANGED;
|
||||
import static android.net.TetheringManager.EXTRA_ACTIVE_LOCAL_ONLY;
|
||||
import static android.net.TetheringManager.EXTRA_ACTIVE_TETHER;
|
||||
import static android.net.TetheringManager.EXTRA_AVAILABLE_TETHER;
|
||||
import static android.net.TetheringManager.EXTRA_ERRORED_TETHER;
|
||||
import static android.net.TetheringManager.TETHERING_BLUETOOTH;
|
||||
import static android.net.TetheringManager.TETHERING_INVALID;
|
||||
import static android.net.TetheringManager.TETHERING_USB;
|
||||
import static android.net.TetheringManager.TETHERING_WIFI;
|
||||
import static android.net.TetheringManager.TETHERING_WIFI_P2P;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_MASTER_ERROR;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_NO_ERROR;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_SERVICE_UNAVAIL;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_UNAVAIL_IFACE;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_UNKNOWN_IFACE;
|
||||
import static android.net.util.TetheringMessageBase.BASE_MASTER;
|
||||
import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_INTERFACE_NAME;
|
||||
import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_MODE;
|
||||
|
||||
@@ -16,14 +16,14 @@
|
||||
|
||||
package android.net.ip;
|
||||
|
||||
import static android.net.ConnectivityManager.TETHERING_BLUETOOTH;
|
||||
import static android.net.ConnectivityManager.TETHERING_USB;
|
||||
import static android.net.ConnectivityManager.TETHERING_WIFI;
|
||||
import static android.net.ConnectivityManager.TETHERING_WIFI_P2P;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_ENABLE_NAT_ERROR;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_NO_ERROR;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_TETHER_IFACE_ERROR;
|
||||
import static android.net.INetd.IF_STATE_UP;
|
||||
import static android.net.TetheringManager.TETHERING_BLUETOOTH;
|
||||
import static android.net.TetheringManager.TETHERING_USB;
|
||||
import static android.net.TetheringManager.TETHERING_WIFI;
|
||||
import static android.net.TetheringManager.TETHERING_WIFI_P2P;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_ENABLE_NAT_ERROR;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_NO_ERROR;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_TETHER_IFACE_ERROR;
|
||||
import static android.net.dhcp.IDhcpServer.STATUS_SUCCESS;
|
||||
import static android.net.ip.IpServer.STATE_AVAILABLE;
|
||||
import static android.net.ip.IpServer.STATE_LOCAL_ONLY;
|
||||
|
||||
@@ -16,12 +16,12 @@
|
||||
|
||||
package com.android.server.connectivity.tethering;
|
||||
|
||||
import static android.net.ConnectivityManager.TETHERING_BLUETOOTH;
|
||||
import static android.net.ConnectivityManager.TETHERING_USB;
|
||||
import static android.net.ConnectivityManager.TETHERING_WIFI;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_ENTITLEMENT_UNKONWN;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_NO_ERROR;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_PROVISION_FAILED;
|
||||
import static android.net.TetheringManager.TETHERING_BLUETOOTH;
|
||||
import static android.net.TetheringManager.TETHERING_USB;
|
||||
import static android.net.TetheringManager.TETHERING_WIFI;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_ENTITLEMENT_UNKONWN;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_NO_ERROR;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_PROVISION_FAILED;
|
||||
import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||
|
||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
|
||||
|
||||
@@ -19,16 +19,15 @@ package com.android.server.connectivity.tethering;
|
||||
import static android.hardware.usb.UsbManager.USB_CONFIGURED;
|
||||
import static android.hardware.usb.UsbManager.USB_CONNECTED;
|
||||
import static android.hardware.usb.UsbManager.USB_FUNCTION_RNDIS;
|
||||
import static android.net.ConnectivityManager.ACTION_TETHER_STATE_CHANGED;
|
||||
import static android.net.ConnectivityManager.EXTRA_ACTIVE_LOCAL_ONLY;
|
||||
import static android.net.ConnectivityManager.EXTRA_ACTIVE_TETHER;
|
||||
import static android.net.ConnectivityManager.EXTRA_AVAILABLE_TETHER;
|
||||
import static android.net.ConnectivityManager.TETHERING_USB;
|
||||
import static android.net.ConnectivityManager.TETHERING_WIFI;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_NO_ERROR;
|
||||
import static android.net.ConnectivityManager.TETHER_ERROR_UNKNOWN_IFACE;
|
||||
import static android.net.ConnectivityManager.TYPE_WIFI_P2P;
|
||||
import static android.net.RouteInfo.RTN_UNICAST;
|
||||
import static android.net.TetheringManager.ACTION_TETHER_STATE_CHANGED;
|
||||
import static android.net.TetheringManager.EXTRA_ACTIVE_LOCAL_ONLY;
|
||||
import static android.net.TetheringManager.EXTRA_ACTIVE_TETHER;
|
||||
import static android.net.TetheringManager.EXTRA_AVAILABLE_TETHER;
|
||||
import static android.net.TetheringManager.TETHERING_USB;
|
||||
import static android.net.TetheringManager.TETHERING_WIFI;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_NO_ERROR;
|
||||
import static android.net.TetheringManager.TETHER_ERROR_UNKNOWN_IFACE;
|
||||
import static android.net.dhcp.IDhcpServer.STATUS_SUCCESS;
|
||||
import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_INTERFACE_NAME;
|
||||
import static android.net.wifi.WifiManager.EXTRA_WIFI_AP_MODE;
|
||||
@@ -80,7 +79,6 @@ import android.net.LinkProperties;
|
||||
import android.net.MacAddress;
|
||||
import android.net.Network;
|
||||
import android.net.NetworkCapabilities;
|
||||
import android.net.NetworkInfo;
|
||||
import android.net.NetworkRequest;
|
||||
import android.net.RouteInfo;
|
||||
import android.net.TetherStatesParcel;
|
||||
@@ -491,15 +489,12 @@ public class TetheringTest {
|
||||
p2pInfo.groupFormed = isGroupFormed;
|
||||
p2pInfo.isGroupOwner = isGroupOwner;
|
||||
|
||||
NetworkInfo networkInfo = new NetworkInfo(TYPE_WIFI_P2P, 0, null, null);
|
||||
|
||||
WifiP2pGroup group = new WifiP2pGroup();
|
||||
group.setIsGroupOwner(isGroupOwner);
|
||||
group.setInterface(ifname);
|
||||
|
||||
final Intent intent = new Intent(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
|
||||
intent.putExtra(WifiP2pManager.EXTRA_WIFI_P2P_INFO, p2pInfo);
|
||||
intent.putExtra(WifiP2pManager.EXTRA_NETWORK_INFO, networkInfo);
|
||||
intent.putExtra(WifiP2pManager.EXTRA_WIFI_P2P_GROUP, group);
|
||||
mServiceContext.sendBroadcastAsUserMultiplePermissions(intent, UserHandle.ALL,
|
||||
P2P_RECEIVER_PERMISSIONS_FOR_BROADCAST);
|
||||
|
||||
Reference in New Issue
Block a user