From 01894d8f6b661362cab36e6a997053fd078101a2 Mon Sep 17 00:00:00 2001 From: Peter Qiu Date: Tue, 25 Oct 2016 11:38:01 -0700 Subject: [PATCH] wifi: hotspot2: add Passpoint APIs to WifiManager Add dedicated APIs for managing Passpoint configurations, since Passpoint configurations are different from WiFi network configurations. A Passpoint configuration provides a credential for authenticating to one or more WiFi networks that are operated by the "same" service provider. Bug: 32282711 Test: make -j32 Change-Id: I52822ab3074e2f2a3d986e3c0a24d024f2c06dca --- wifi/java/android/net/wifi/IWifiManager.aidl | 7 +++ wifi/java/android/net/wifi/WifiManager.java | 51 ++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl index a91c9491c60ab..f1ec16aa4bd20 100644 --- a/wifi/java/android/net/wifi/IWifiManager.aidl +++ b/wifi/java/android/net/wifi/IWifiManager.aidl @@ -16,6 +16,7 @@ package android.net.wifi; +import android.net.wifi.hotspot2.PasspointConfiguration; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.ScanSettings; @@ -63,6 +64,12 @@ interface IWifiManager int modifyPasspointManagementObject(String fqdn, in List mos); + boolean addPasspointConfiguration(in PasspointConfiguration config); + + boolean removePasspointConfiguration(in String fqdn); + + List getPasspointConfigurations(); + void queryPasspointIcon(long bssid, String fileName); int matchProviderWithCurrentNetwork(String fqdn); diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index d04a60ecdfd2a..18dee7b7bb2a7 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -25,6 +25,7 @@ import android.net.DhcpInfo; import android.net.Network; import android.net.NetworkCapabilities; import android.net.NetworkRequest; +import android.net.wifi.hotspot2.PasspointConfiguration; import android.os.Binder; import android.os.Build; import android.os.Handler; @@ -845,6 +846,56 @@ public class WifiManager { } } + /** + * Add a Passpoint configuration. The configuration provides a credential + * for connecting to Passpoint networks that are operated by the Passpoint + * service provider specified in the configuration. + * + * Each configuration is uniquely identified by its FQDN (Fully Qualified Domain + * Name). In the case when there is an existing configuration with the same base + * domain, the new configuration will replace the existing configuration. + * + * @param config The Passpoint configuration to be added + * @return true on success or false on failure + * @hide + */ + public boolean addPasspointConfiguration(PasspointConfiguration config) { + try { + return mService.addPasspointConfiguration(config); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Remove a Passpoint configuration identified by its FQDN (Fully Qualified Domain Name). + * + * @param fqdn The FQDN of the passpoint configuration to be removed + * @return true on success or false on failure + * @hide + */ + public boolean removePasspointConfiguration(String fqdn) { + try { + return mService.removePasspointConfiguration(fqdn); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** + * Return the list of installed Passpoint configurations. + * + * @return A list of PasspointConfiguration or null + * @hide + */ + public List getPasspointConfigurations() { + try { + return mService.getPasspointConfigurations(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + /** * Query for a Hotspot 2.0 release 2 OSU icon * @param bssid The BSSID of the AP