Merge "[DPP R2] Update ACTION_PROCESS_WIFI_EASY_CONNECT_URI intent"

This commit is contained in:
TreeHugger Robot
2019-12-26 19:19:54 +00:00
committed by Android (Google) Code Review
4 changed files with 126 additions and 28 deletions

View File

@@ -30158,6 +30158,21 @@ package android.net.ssl {
package android.net.wifi {
public abstract class EasyConnectStatusCallback {
field public static final int EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION = -2; // 0xfffffffe
field public static final int EASY_CONNECT_EVENT_FAILURE_BUSY = -5; // 0xfffffffb
field public static final int EASY_CONNECT_EVENT_FAILURE_CANNOT_FIND_NETWORK = -10; // 0xfffffff6
field public static final int EASY_CONNECT_EVENT_FAILURE_CONFIGURATION = -4; // 0xfffffffc
field public static final int EASY_CONNECT_EVENT_FAILURE_ENROLLEE_AUTHENTICATION = -11; // 0xfffffff5
field public static final int EASY_CONNECT_EVENT_FAILURE_ENROLLEE_REJECTED_CONFIGURATION = -12; // 0xfffffff4
field public static final int EASY_CONNECT_EVENT_FAILURE_GENERIC = -7; // 0xfffffff9
field public static final int EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK = -9; // 0xfffffff7
field public static final int EASY_CONNECT_EVENT_FAILURE_INVALID_URI = -1; // 0xffffffff
field public static final int EASY_CONNECT_EVENT_FAILURE_NOT_COMPATIBLE = -3; // 0xfffffffd
field public static final int EASY_CONNECT_EVENT_FAILURE_NOT_SUPPORTED = -8; // 0xfffffff8
field public static final int EASY_CONNECT_EVENT_FAILURE_TIMEOUT = -6; // 0xfffffffa
}
public class ScanResult implements android.os.Parcelable {
method public int describeContents();
method public int getWifiStandard();
@@ -39459,6 +39474,10 @@ package android.provider {
field public static final String EXTRA_CHANNEL_ID = "android.provider.extra.CHANNEL_ID";
field public static final String EXTRA_DO_NOT_DISTURB_MODE_ENABLED = "android.settings.extra.do_not_disturb_mode_enabled";
field public static final String EXTRA_DO_NOT_DISTURB_MODE_MINUTES = "android.settings.extra.do_not_disturb_mode_minutes";
field public static final String EXTRA_EASY_CONNECT_ATTEMPTED_SSID = "android.provider.extra.EASY_CONNECT_ATTEMPTED_SSID";
field public static final String EXTRA_EASY_CONNECT_BAND_LIST = "android.provider.extra.EASY_CONNECT_BAND_LIST";
field public static final String EXTRA_EASY_CONNECT_CHANNEL_LIST = "android.provider.extra.EASY_CONNECT_CHANNEL_LIST";
field public static final String EXTRA_EASY_CONNECT_ERROR_CODE = "android.provider.extra.EASY_CONNECT_ERROR_CODE";
field public static final String EXTRA_INPUT_METHOD_ID = "input_method_id";
field public static final String EXTRA_NOTIFICATION_LISTENER_COMPONENT_NAME = "android.provider.extra.NOTIFICATION_LISTENER_COMPONENT_NAME";
field public static final String EXTRA_SUB_ID = "android.provider.extra.SUB_ID";

View File

@@ -5403,18 +5403,6 @@ package android.net.wifi {
method public void onFailure(int);
method public void onFailure(int, @Nullable String, @NonNull android.util.SparseArray<int[]>, @NonNull int[]);
method public abstract void onProgress(int);
field public static final int EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION = -2; // 0xfffffffe
field public static final int EASY_CONNECT_EVENT_FAILURE_BUSY = -5; // 0xfffffffb
field public static final int EASY_CONNECT_EVENT_FAILURE_CANNOT_FIND_NETWORK = -10; // 0xfffffff6
field public static final int EASY_CONNECT_EVENT_FAILURE_CONFIGURATION = -4; // 0xfffffffc
field public static final int EASY_CONNECT_EVENT_FAILURE_ENROLLEE_AUTHENTICATION = -11; // 0xfffffff5
field public static final int EASY_CONNECT_EVENT_FAILURE_ENROLLEE_REJECTED_CONFIGURATION = -12; // 0xfffffff4
field public static final int EASY_CONNECT_EVENT_FAILURE_GENERIC = -7; // 0xfffffff9
field public static final int EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK = -9; // 0xfffffff7
field public static final int EASY_CONNECT_EVENT_FAILURE_INVALID_URI = -1; // 0xffffffff
field public static final int EASY_CONNECT_EVENT_FAILURE_NOT_COMPATIBLE = -3; // 0xfffffffd
field public static final int EASY_CONNECT_EVENT_FAILURE_NOT_SUPPORTED = -8; // 0xfffffff8
field public static final int EASY_CONNECT_EVENT_FAILURE_TIMEOUT = -6; // 0xfffffffa
field public static final int EASY_CONNECT_EVENT_PROGRESS_AUTHENTICATION_SUCCESS = 0; // 0x0
field public static final int EASY_CONNECT_EVENT_PROGRESS_CONFIGURATION_ACCEPTED = 3; // 0x3
field public static final int EASY_CONNECT_EVENT_PROGRESS_CONFIGURATION_SENT_WAITING_RESPONSE = 2; // 0x2

View File

@@ -494,24 +494,93 @@ public final class Settings {
* Activity Action: Show setting page to process an Easy Connect (Wi-Fi DPP) QR code and start
* configuration. This intent should be used when you want to use this device to take on the
* configurator role for an IoT/other device. When provided with a valid DPP URI string Settings
* will open a wifi selection screen for the user to indicate which network they would like
* to configure the device specified in the DPP URI string for and carry them through the rest
* of the flow for provisioning the device.
* will open a wifi selection screen for the user to indicate which network they would like to
* configure the device specified in the DPP URI string for and carry them through the rest of
* the flow for provisioning the device.
* <p>
* In some cases, a matching Activity may not exist, so ensure you safeguard
* against this by checking WifiManager.isEasyConnectSupported();
* In some cases, a matching Activity may not exist, so ensure you safeguard against this by
* checking WifiManager.isEasyConnectSupported();
* <p>
* Input: The Intent's data URI specifies bootstrapping information for authenticating and
* provisioning the peer, with the "DPP" scheme.
* <p>
* Output: After {@code startActivityForResult}, the callback {@code onActivityResult} will have
* resultCode {@link android.app.Activity#RESULT_OK} if Wi-Fi Easy Connect configuration
* success and the user clicks 'Done' button.
* resultCode {@link android.app.Activity#RESULT_OK} if Wi-Fi Easy Connect configuration succeeded
* and the user tapped 'Done' button, or {@link android.app.Activity#RESULT_CANCELED} if operation
* failed and user tapped 'Cancel'. In case the operation has failed, a status code from {@link
* android.net.wifi.EasyConnectStatusCallback.EasyConnectFailureStatusCode} will be returned as
* Extra {@link #EXTRA_EASY_CONNECT_ERROR_CODE}. Easy Connect R2 Enrollees report additional
* details about the error they encountered, which will be provided in the {@link
* #EXTRA_EASY_CONNECT_ATTEMPTED_SSID}, {@link #EXTRA_EASY_CONNECT_CHANNEL_LIST}, and {@link
* #EXTRA_EASY_CONNECT_BAND_LIST}.
*/
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
public static final String ACTION_PROCESS_WIFI_EASY_CONNECT_URI =
"android.settings.PROCESS_WIFI_EASY_CONNECT_URI";
/**
* Activity Extra: The Easy Connect operation error code
* <p>
* An extra returned on the result intent received when using the {@link
* #ACTION_PROCESS_WIFI_EASY_CONNECT_URI} intent to launch the Easy Connect Operation. This
* extra contains the error code of the operation - one of
* {@link android.net.wifi.EasyConnectStatusCallback.EasyConnectFailureStatusCode}.
* If there is no error, i.e. if the operation returns {@link android.app.Activity#RESULT_OK},
* then this extra is not attached to the result intent.
*/
public static final String EXTRA_EASY_CONNECT_ERROR_CODE =
"android.provider.extra.EASY_CONNECT_ERROR_CODE";
/**
* Activity Extra: The SSID that the Enrollee tried to connect to.
* <p>
* An extra returned on the result intent received when using the {@link
* #ACTION_PROCESS_WIFI_EASY_CONNECT_URI} intent to launch the Easy Connect Operation. This
* extra contains the SSID of the Access Point that the remote Enrollee tried to connect to.
* This value is populated only by remote R2 devices, and only for the following error codes:
* {@link android.net.wifi.EasyConnectStatusCallback.EasyConnectFailureStatusCode#EASY_CONNECT_EVENT_FAILURE_CANNOT_FIND_NETWORK}
* {@link android.net.wifi.EasyConnectStatusCallback.EasyConnectFailureStatusCode#EASY_CONNECT_EVENT_FAILURE_ENROLLEE_AUTHENTICATION}.
* Therefore, always check if this extra is available using {@link Intent#hasExtra(String)}. If
* there is no error, i.e. if the operation returns {@link android.app.Activity#RESULT_OK}, then
* this extra is not attached to the result intent.
*/
public static final String EXTRA_EASY_CONNECT_ATTEMPTED_SSID =
"android.provider.extra.EASY_CONNECT_ATTEMPTED_SSID";
/**
* Activity Extra: The Channel List that the Enrollee used to scan a network.
* <p>
* An extra returned on the result intent received when using the {@link
* #ACTION_PROCESS_WIFI_EASY_CONNECT_URI} intent to launch the Easy Connect Operation. This
* extra contains the list channels the Enrollee used to scan for a network. This value is
* populated only by remote R2 devices, and only for the following error code: {@link
* android.net.wifi.EasyConnectStatusCallback.EasyConnectFailureStatusCode#EASY_CONNECT_EVENT_FAILURE_CANNOT_FIND_NETWORK}.
* Therefore, always check if this extra is available using {@link Intent#hasExtra(String)}. If
* there is no error, i.e. if the operation returns {@link android.app.Activity#RESULT_OK}, then
* this extra is not attached to the result intent. The list is JSON formatted, as an array
* (Wi-Fi global operating classes) of arrays (Wi-Fi channels).
*/
public static final String EXTRA_EASY_CONNECT_CHANNEL_LIST =
"android.provider.extra.EASY_CONNECT_CHANNEL_LIST";
/**
* Activity Extra: The Band List that the Enrollee supports.
* <p>
* An extra returned on the result intent received when using the {@link
* #ACTION_PROCESS_WIFI_EASY_CONNECT_URI} intent to launch the Easy Connect Operation. This
* extra contains the bands the Enrollee supports, expressed as the Global Operating Class,
* see Table E-4 in IEEE Std 802.11-2016 -Global operating classes. This value is populated only
* by remote R2 devices, and only for the following error codes: {@link
* android.net.wifi.EasyConnectStatusCallback.EasyConnectFailureStatusCode#EASY_CONNECT_EVENT_FAILURE_CANNOT_FIND_NETWORK}
* {@link android.net.wifi.EasyConnectStatusCallback.EasyConnectFailureStatusCode#EASY_CONNECT_EVENT_FAILURE_ENROLLEE_AUTHENTICATION}
* {@link android.net.wifi.EasyConnectStatusCallback.EasyConnectFailureStatusCode#EASY_CONNECT_EVENT_FAILURE_ENROLLEE_REJECTED_CONFIGURATION}.
* Therefore, always check if this extra is available using {@link Intent#hasExtra(String)}. If
* there is no error, i.e. if the operation returns {@link android.app.Activity#RESULT_OK}, then
* this extra is not attached to the result intent.
*/
public static final String EXTRA_EASY_CONNECT_BAND_LIST =
"android.provider.extra.EASY_CONNECT_BAND_LIST";
/**
* Activity Action: Show settings to allow configuration of data and view data usage.
* <p>

View File

@@ -28,29 +28,27 @@ import java.util.concurrent.Executor;
/**
* Easy Connect (DPP) Status Callback. Use this callback to get status updates (success, failure,
* progress) from the Easy Connect operation started with
* {@link WifiManager#startEasyConnectAsConfiguratorInitiator(String, int, int, Executor,
* EasyConnectStatusCallback)} or {@link WifiManager#startEasyConnectAsEnrolleeInitiator(String,
* Executor, EasyConnectStatusCallback)}
*
* @hide
* progress) from the Easy Connect operations.
*/
@SystemApi
public abstract class EasyConnectStatusCallback {
/**
* Easy Connect R1 Success event: Configuration sent (Configurator mode). This is the last
* and final Easy Connect event when either the local device or remote device implement R1.
* If both devices implement R2, this event will never be received, and the
* {@link EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_APPLIED} will be received.
* {@link #EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_APPLIED} will be received.
* @hide
*/
@SystemApi
public static final int EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT = 0;
/**
* East Connect R2 Success event: Configuration applied by Enrollee (Configurator mode).
* This is the last and final Easy Connect event when both the local device and remote device
* implement R2. If either the local device or remote device implement R1, this event will never
* be received, and the {@link EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT} will be received.
* be received, and the {@link #EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT} will be received.
* @hide
*/
@SystemApi
public static final int EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_APPLIED = 1;
/** @hide */
@@ -64,22 +62,30 @@ public abstract class EasyConnectStatusCallback {
/**
* Easy Connect Progress event: Initial authentication with peer succeeded.
* @hide
*/
@SystemApi
public static final int EASY_CONNECT_EVENT_PROGRESS_AUTHENTICATION_SUCCESS = 0;
/**
* Easy Connect Progress event: Peer requires more time to process bootstrapping.
* @hide
*/
@SystemApi
public static final int EASY_CONNECT_EVENT_PROGRESS_RESPONSE_PENDING = 1;
/**
* Easy Connect R2 Progress event: Configuration sent to Enrollee, waiting for response
* @hide
*/
@SystemApi
public static final int EASY_CONNECT_EVENT_PROGRESS_CONFIGURATION_SENT_WAITING_RESPONSE = 2;
/**
* Easy Connect R2 Progress event: Configuration accepted by Enrollee, waiting for response
* @hide
*/
@SystemApi
public static final int EASY_CONNECT_EVENT_PROGRESS_CONFIGURATION_ACCEPTED = 3;
/** @hide */
@@ -174,6 +180,12 @@ public abstract class EasyConnectStatusCallback {
public @interface EasyConnectFailureStatusCode {
}
/** @hide */
@SystemApi
public EasyConnectStatusCallback() {
// Fully-static utility classes must not have constructor
}
/**
* Called when local Easy Connect Enrollee successfully receives a new Wi-Fi configuration from
* the
@@ -185,7 +197,9 @@ public abstract class EasyConnectStatusCallback {
* EasyConnectStatusCallback)} .
*
* @param newNetworkId New Wi-Fi configuration with a network ID received from the configurator
* @hide
*/
@SystemApi
public abstract void onEnrolleeSuccess(int newNetworkId);
/**
@@ -197,7 +211,9 @@ public abstract class EasyConnectStatusCallback {
* int, Executor,EasyConnectStatusCallback)}.
*
* @param code Easy Connect success status code.
* @hide
*/
@SystemApi
public abstract void onConfiguratorSuccess(@EasyConnectSuccessStatusCode int code);
/**
@@ -205,7 +221,9 @@ public abstract class EasyConnectStatusCallback {
* end of the current Easy Connect session, and no further callbacks will be called.
*
* @param code Easy Connect failure status code.
* @hide
*/
@SystemApi
public void onFailure(@EasyConnectFailureStatusCode int code) {}
/**
@@ -227,7 +245,9 @@ public abstract class EasyConnectStatusCallback {
* @param operatingClassArray Array of bands the Enrollee supports as expressed as the Global
* Operating Class, see Table E-4 in IEEE Std 802.11-2016 - Global
* operating classes.
* @hide
*/
@SystemApi
public void onFailure(@EasyConnectFailureStatusCode int code, @Nullable String ssid,
@NonNull SparseArray<int[]> channelListArray, @NonNull int[] operatingClassArray) {
onFailure(code);
@@ -238,6 +258,8 @@ public abstract class EasyConnectStatusCallback {
* to show progress.
*
* @param code Easy Connect progress status code.
* @hide
*/
@SystemApi
public abstract void onProgress(@EasyConnectProgressStatusCode int code);
}