Unhide WifiPasspointManager for ANQP APIs - DO NOT MERGE
This is unhiding some unwanted changes too; but we'll fix that later.
Change-Id: I35343815e99aafbec8e4ef4d0707499fb6219457
diff --git a/api/current.txt b/api/current.txt
index da1ebae..b172a19 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -18288,6 +18288,7 @@
field public java.lang.String capabilities;
field public int frequency;
field public int level;
+ field public android.net.wifi.passpoint.WifiPasspointInfo passpoint;
field public long timestamp;
}
@@ -18763,6 +18764,213 @@
}
+package android.net.wifi.passpoint {
+
+ public abstract interface IWifiPasspointManager implements android.os.IInterface {
+ method public abstract boolean addCredential(android.net.wifi.passpoint.WifiPasspointCredential) throws android.os.RemoteException;
+ method public abstract java.util.List<android.net.wifi.passpoint.WifiPasspointCredential> getCredentials() throws android.os.RemoteException;
+ method public abstract android.os.Messenger getMessenger() throws android.os.RemoteException;
+ method public abstract int getPasspointState() throws android.os.RemoteException;
+ method public abstract boolean removeCredential(android.net.wifi.passpoint.WifiPasspointCredential) throws android.os.RemoteException;
+ method public abstract java.util.List<android.net.wifi.passpoint.WifiPasspointPolicy> requestCredentialMatch(java.util.List<android.net.wifi.ScanResult>) throws android.os.RemoteException;
+ method public abstract boolean updateCredential(android.net.wifi.passpoint.WifiPasspointCredential) throws android.os.RemoteException;
+ }
+
+ public class WifiPasspointCredential implements android.os.Parcelable {
+ ctor public WifiPasspointCredential(java.lang.String, java.lang.String, android.net.wifi.WifiEnterpriseConfig);
+ method public int describeContents();
+ method public android.net.wifi.WifiEnterpriseConfig getEnterpriseConfig();
+ method public java.lang.String getHomeSpFqdn();
+ method public java.lang.String getRealm();
+ method public void setEnterpriseConfig(android.net.wifi.WifiEnterpriseConfig);
+ method public void setHomeFqdn(java.lang.String);
+ method public void setRealm(java.lang.String);
+ method public void writeToParcel(android.os.Parcel, int);
+ }
+
+ public class WifiPasspointInfo implements android.os.Parcelable {
+ ctor public WifiPasspointInfo();
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final int ANQP_CAPABILITY = 1; // 0x1
+ field public static final int CELLULAR_NETWORK = 64; // 0x40
+ field public static final int CONNECTION_CAPABILITY = 2048; // 0x800
+ field public static final int DOMAIN_NAME = 128; // 0x80
+ field public static final int HOTSPOT_CAPABILITY = 256; // 0x100
+ field public static final int IP_ADDR_TYPE_AVAILABILITY = 16; // 0x10
+ field public static final int NAI_REALM = 32; // 0x20
+ field public static final int NETWORK_AUTH_TYPE = 4; // 0x4
+ field public static final int OPERATOR_FRIENDLY_NAME = 512; // 0x200
+ field public static final int OSU_PROVIDER = 4096; // 0x1000
+ field public static final int PRESET_ALL = 8191; // 0x1fff
+ field public static final int PRESET_CRED_MATCH = 481; // 0x1e1
+ field public static final int ROAMING_CONSORTIUM = 8; // 0x8
+ field public static final int VENUE_NAME = 2; // 0x2
+ field public static final int WAN_METRICS = 1024; // 0x400
+ field public java.lang.String bssid;
+ field public java.util.List cellularNetworkList;
+ field public java.util.List connectionCapabilityList;
+ field public java.util.List domainNameList;
+ field public android.net.wifi.passpoint.WifiPasspointInfo.IpAddressType ipAddrTypeAvailability;
+ field public java.util.List naiRealmList;
+ field public java.util.List networkAuthTypeList;
+ field public java.lang.String operatorFriendlyName;
+ field public java.util.List osuProviderList;
+ field public java.util.List roamingConsortiumList;
+ field public java.lang.String venueName;
+ field public android.net.wifi.passpoint.WifiPasspointInfo.WanMetrics wanMetrics;
+ }
+
+ public static class WifiPasspointInfo.CellularNetwork {
+ ctor public WifiPasspointInfo.CellularNetwork();
+ field public java.lang.String mcc;
+ field public java.lang.String mnc;
+ }
+
+ public static class WifiPasspointInfo.IpAddressType {
+ ctor public WifiPasspointInfo.IpAddressType();
+ method public int getIpv4Availability();
+ method public int getIpv6Availability();
+ field public static final int IPV4_DOUBLE_NAT = 4; // 0x4
+ field public static final int IPV4_NOT_AVAILABLE = 0; // 0x0
+ field public static final int IPV4_PORT_RESTRICTED = 2; // 0x2
+ field public static final int IPV4_PORT_RESTRICTED_DOUBLE_NAT = 6; // 0x6
+ field public static final int IPV4_PORT_RESTRICTED_SINGLE_NAT = 5; // 0x5
+ field public static final int IPV4_PORT_UNKNOWN = 7; // 0x7
+ field public static final int IPV4_PUBLIC = 1; // 0x1
+ field public static final int IPV4_SINGLE_NAT = 3; // 0x3
+ field public static final int IPV6_AVAILABLE = 1; // 0x1
+ field public static final int IPV6_NOT_AVAILABLE = 0; // 0x0
+ field public static final int IPV6_UNKNOWN = 2; // 0x2
+ field public int availability;
+ }
+
+ public static class WifiPasspointInfo.IpProtoPort {
+ ctor public WifiPasspointInfo.IpProtoPort();
+ field public static final int STATUS_CLOSED = 0; // 0x0
+ field public static final int STATUS_OPEN = 1; // 0x1
+ field public static final int STATUS_UNKNOWN = 2; // 0x2
+ field public int port;
+ field public int proto;
+ field public int status;
+ }
+
+ public static class WifiPasspointInfo.NaiRealm {
+ ctor public WifiPasspointInfo.NaiRealm();
+ field public static final int ENCODING_RFC4282 = 0; // 0x0
+ field public static final int ENCODING_UTF8 = 1; // 0x1
+ field public int encoding;
+ field public java.lang.String realm;
+ }
+
+ public static class WifiPasspointInfo.NetworkAuthType {
+ ctor public WifiPasspointInfo.NetworkAuthType();
+ field public static final int TYPE_DNS_REDIRECTION = 3; // 0x3
+ field public static final int TYPE_HTTP_REDIRECTION = 2; // 0x2
+ field public static final int TYPE_ONLINE_ENROLLMENT = 1; // 0x1
+ field public static final int TYPE_TERMS_AND_CONDITION = 0; // 0x0
+ field public java.lang.String redirectUrl;
+ field public int type;
+ }
+
+ public static class WifiPasspointInfo.WanMetrics {
+ ctor public WifiPasspointInfo.WanMetrics();
+ method public boolean getAtCapacity();
+ method public int getLinkStatus();
+ method public boolean getSymmetricLink();
+ field public static final int STATUS_DOWN = 2; // 0x2
+ field public static final int STATUS_RESERVED = 0; // 0x0
+ field public static final int STATUS_TEST = 3; // 0x3
+ field public static final int STATUS_UP = 1; // 0x1
+ field public int downlinkLoad;
+ field public long downlinkSpeed;
+ field public int lmd;
+ field public int uplinkLoad;
+ field public long uplinkSpeed;
+ field public int wanInfo;
+ }
+
+ public class WifiPasspointManager {
+ ctor public WifiPasspointManager(android.content.Context, android.net.wifi.passpoint.IWifiPasspointManager);
+ method public android.os.Messenger getMessenger();
+ method public android.net.wifi.passpoint.WifiPasspointManager.Channel initialize(android.content.Context, android.os.Looper, android.net.wifi.passpoint.WifiPasspointManager.ChannelListener);
+ method public void requestAnqpInfo(android.net.wifi.passpoint.WifiPasspointManager.Channel, java.util.List<android.net.wifi.ScanResult>, int, android.net.wifi.passpoint.WifiPasspointManager.ActionListener);
+ field public static final java.lang.String PASSPOINT_CRED_CHANGED_ACTION = "android.net.wifi.passpoint.CRED_CHANGE";
+ field public static final java.lang.String PASSPOINT_OSU_AVAILABLE_ACTION = "android.net.wifi.passpoint.OSU_AVAILABLE";
+ field public static final int PASSPOINT_STATE_ACCESS = 3; // 0x3
+ field public static final java.lang.String PASSPOINT_STATE_CHANGED_ACTION = "android.net.wifi.passpoint.STATE_CHANGE";
+ field public static final int PASSPOINT_STATE_DISABLED = 1; // 0x1
+ field public static final int PASSPOINT_STATE_DISCOVERY = 2; // 0x2
+ field public static final int PASSPOINT_STATE_PROVISION = 4; // 0x4
+ field public static final int PASSPOINT_STATE_UNKNOWN = 0; // 0x0
+ field public static final java.lang.String PASSPOINT_USER_REM_REQ_ACTION = "android.net.wifi.passpoint.USER_REM_REQ";
+ field public static final java.lang.String PROTOCOL_DM = "OMA-DM-ClientInitiated";
+ field public static final java.lang.String PROTOCOL_SOAP = "SPP-ClientInitiated";
+ field public static final int REASON_BUSY = 2; // 0x2
+ field public static final int REASON_ERROR = 0; // 0x0
+ field public static final int REASON_INVALID_PARAMETER = 3; // 0x3
+ field public static final int REASON_NOT_TRUSTED = 4; // 0x4
+ field public static final int REASON_WIFI_DISABLED = 1; // 0x1
+ field public static final int REQUEST_ANQP_INFO = 163841; // 0x28001
+ field public static final int REQUEST_ANQP_INFO_FAILED = 163842; // 0x28002
+ field public static final int REQUEST_ANQP_INFO_SUCCEEDED = 163843; // 0x28003
+ field public static final int REQUEST_OSU_ICON = 163844; // 0x28004
+ field public static final int REQUEST_OSU_ICON_FAILED = 163845; // 0x28005
+ field public static final int REQUEST_OSU_ICON_SUCCEEDED = 163846; // 0x28006
+ field public static final int START_OSU = 163847; // 0x28007
+ field public static final int START_OSU_BROWSER = 163848; // 0x28008
+ field public static final int START_OSU_FAILED = 163849; // 0x28009
+ field public static final int START_OSU_SUCCEEDED = 163850; // 0x2800a
+ }
+
+ public static abstract interface WifiPasspointManager.ActionListener {
+ method public abstract void onFailure(int);
+ method public abstract void onSuccess();
+ }
+
+ public static class WifiPasspointManager.Channel {
+ }
+
+ public static abstract interface WifiPasspointManager.ChannelListener {
+ method public abstract void onChannelDisconnected();
+ }
+
+ public static class WifiPasspointManager.ParcelableString implements android.os.Parcelable {
+ ctor public WifiPasspointManager.ParcelableString();
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator CREATOR;
+ field public java.lang.String string;
+ }
+
+ public class WifiPasspointOsuProvider implements android.os.Parcelable {
+ method public int describeContents();
+ method public void writeToParcel(android.os.Parcel, int);
+ field public static final android.os.Parcelable.Creator CREATOR;
+ field public java.lang.String friendlyName;
+ field public java.lang.Object icon;
+ field public java.lang.String iconFileName;
+ field public int iconHeight;
+ field public java.lang.String iconType;
+ field public int iconWidth;
+ field public java.lang.String osuNai;
+ field public java.lang.String osuService;
+ field public java.lang.String ssid;
+ }
+
+ public class WifiPasspointPolicy implements android.os.Parcelable {
+ method public android.net.wifi.WifiConfiguration createWifiConfiguration();
+ method public int describeContents();
+ method public java.lang.String getBssid();
+ method public android.net.wifi.passpoint.WifiPasspointCredential getCredential();
+ method public int getCredentialPriority();
+ method public int getRoamingPriority();
+ method public java.lang.String getSsid();
+ method public void writeToParcel(android.os.Parcel, int);
+ }
+
+}
+
package android.nfc {
public class FormatException extends java.lang.Exception {
diff --git a/wifi/java/android/net/wifi/ScanResult.java b/wifi/java/android/net/wifi/ScanResult.java
index f0a7f38..a561dc2 100644
--- a/wifi/java/android/net/wifi/ScanResult.java
+++ b/wifi/java/android/net/wifi/ScanResult.java
@@ -141,7 +141,6 @@
/**
* Passpoint ANQP information. This is not fetched automatically.
* Use {@link WifiPasspointManager#requestAnqpInfo} to request ANQP info.
- * {@hide}
*/
public WifiPasspointInfo passpoint;
diff --git a/wifi/java/android/net/wifi/passpoint/WifiPasspointInfo.java b/wifi/java/android/net/wifi/passpoint/WifiPasspointInfo.java
index 33db3f5..32cf773 100644
--- a/wifi/java/android/net/wifi/passpoint/WifiPasspointInfo.java
+++ b/wifi/java/android/net/wifi/passpoint/WifiPasspointInfo.java
@@ -22,7 +22,6 @@
import java.util.ArrayList;
import java.util.List;
-/** @hide */
public class WifiPasspointInfo implements Parcelable {
/** TODO doc */
diff --git a/wifi/java/android/net/wifi/passpoint/WifiPasspointManager.java b/wifi/java/android/net/wifi/passpoint/WifiPasspointManager.java
index b9b17eb..b2b5310 100644
--- a/wifi/java/android/net/wifi/passpoint/WifiPasspointManager.java
+++ b/wifi/java/android/net/wifi/passpoint/WifiPasspointManager.java
@@ -37,7 +37,6 @@
/**
* Provides APIs for managing Wifi Passpoint credentials.
- * @hide
*/
public class WifiPasspointManager {
@@ -140,41 +139,12 @@
* The operation failed
*
* @param reason The reason for failure could be one of
- * {@link #WIFI_DISABLED}, {@link #ERROR} or {@link #BUSY}
+ * {@link #REASON_WIFI_DISABLED}, {@link #REASON_ERROR} or {@link #REASON_BUSY}
*/
public void onFailure(int reason);
}
/**
- * Interface for callback invocation when doing OSU or user remediation
- */
- public interface OsuRemListener {
- /** The operation succeeded */
- public void onSuccess();
-
- /**
- * The operation failed
- *
- * @param reason The reason for failure could be one of
- * {@link #WIFI_DISABLED}, {@link #ERROR} or {@link #BUSY}
- */
- public void onFailure(int reason);
-
- /**
- * Browser launch is requried for user interaction. When this callback
- * is called, app should launch browser / webview to the given URI.
- *
- * @param uri URI for browser launch
- */
- public void onBrowserLaunch(String uri);
-
- /**
- * When this is called, app should dismiss the previously lanched browser.
- */
- public void onBrowserDismiss();
- }
-
- /**
* A channel that connects the application to the wifi passpoint framework.
* Most passpoint operations require a Channel as an argument.
* An instance of Channel is obtained by doing a call on {@link #initialize}
@@ -317,31 +287,6 @@
}
break;
- case START_OSU_SUCCEEDED:
- listener = getListener(message.arg2, true);
- if (listener != null) {
- ((OsuRemListener) listener).onSuccess();
- }
- break;
-
- case START_OSU_FAILED:
- listener = getListener(message.arg2, true);
- if (listener != null) {
- ((OsuRemListener) listener).onFailure(message.arg1);
- }
- break;
-
- case START_OSU_BROWSER:
- listener = peekListener(message.arg2);
- if (listener != null) {
- ParcelableString str = (ParcelableString) message.obj;
- if (str == null || str.string == null)
- ((OsuRemListener) listener).onBrowserDismiss();
- else
- ((OsuRemListener) listener).onBrowserLaunch(str.string);
- }
- break;
-
default:
Log.d(TAG, "Ignored " + message);
break;
@@ -443,14 +388,6 @@
}
}
- public int getPasspointState() {
- try {
- return mService.getPasspointState();
- } catch (RemoteException e) {
- return PASSPOINT_STATE_UNKNOWN;
- }
- }
-
public void requestAnqpInfo(Channel c, List<ScanResult> requested, int mask,
ActionListener listener) {
Log.d(TAG, "requestAnqpInfo start");
@@ -477,90 +414,6 @@
Log.d(TAG, "requestAnqpInfo end");
}
- public void requestOsuIcons(Channel c, List<WifiPasspointOsuProvider> requested,
- int resolution, ActionListener listener) {
- }
-
- public List<WifiPasspointPolicy> requestCredentialMatch(List<ScanResult> requested) {
- try {
- return mService.requestCredentialMatch(requested);
- } catch (RemoteException e) {
- return null;
- }
- }
-
- /**
- * Get a list of saved Passpoint credentials. Only those credentials owned
- * by the caller will be returned.
- *
- * @return The list of credentials
- */
- public List<WifiPasspointCredential> getCredentials() {
- try {
- return mService.getCredentials();
- } catch (RemoteException e) {
- return null;
- }
- }
-
- /**
- * Add a new Passpoint credential.
- *
- * @param cred The credential to be added
- * @return {@code true} if the operation succeeds, {@code false} otherwise
- */
- public boolean addCredential(WifiPasspointCredential cred) {
- try {
- return mService.addCredential(cred);
- } catch (RemoteException e) {
- return false;
- }
- }
-
- /**
- * Update an existing Passpoint credential. Only system or the owner of this
- * credential has the permission to do this.
- *
- * @param cred The credential to be updated
- * @return {@code true} if the operation succeeds, {@code false} otherwise
- */
- public boolean updateCredential(WifiPasspointCredential cred) {
- try {
- return mService.updateCredential(cred);
- } catch (RemoteException e) {
- return false;
- }
- }
-
- /**
- * Remove an existing Passpoint credential. Only system or the owner of this
- * credential has the permission to do this.
- *
- * @param cred The credential to be removed
- * @return {@code true} if the operation succeeds, {@code false} otherwise
- */
- public boolean removeCredential(WifiPasspointCredential cred) {
- try {
- return mService.removeCredential(cred);
- } catch (RemoteException e) {
- return false;
- }
- }
-
- public void startOsu(Channel c, WifiPasspointOsuProvider osu, OsuRemListener listener) {
- Log.d(TAG, "startOsu start");
- checkChannel(c);
- int key = c.putListener(listener);
- c.mAsyncChannel.sendMessage(START_OSU, 0, key, osu);
- Log.d(TAG, "startOsu end");
- }
-
- public void startRemediation(Channel c, OsuRemListener listener) {
- }
-
- public void connect(WifiPasspointPolicy policy) {
- }
-
private static void checkChannel(Channel c) {
if (c == null) throw new IllegalArgumentException("Channel needs to be initialized");
}