diff options
4 files changed, 35 insertions, 0 deletions
diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl index c6acd026bd39..21d6b94fba24 100644 --- a/wifi/java/android/net/wifi/IWifiManager.aidl +++ b/wifi/java/android/net/wifi/IWifiManager.aidl @@ -193,5 +193,7 @@ interface IWifiManager int addNetworkSuggestions(in List<WifiNetworkSuggestion> networkSuggestions, in String packageName); int removeNetworkSuggestions(in List<WifiNetworkSuggestion> networkSuggestions, in String packageName); + + String[] getFactoryMacAddresses(); } diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index 46ecc497da31..57c97eaf1f10 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -4434,4 +4434,19 @@ public class WifiManager { public boolean isOweSupported() { return isFeatureSupported(WIFI_FEATURE_OWE); } + + /** + * Gets the factory Wi-Fi MAC addresses. + * @return Array of String representing Wi-Fi MAC addresses sorted lexically or an empty Array + * if failed. + * @hide + */ + @RequiresPermission(android.Manifest.permission.NETWORK_SETTINGS) + public String[] getFactoryMacAddresses() { + try { + return mService.getFactoryMacAddresses(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } } diff --git a/wifi/java/com/android/server/wifi/AbstractWifiService.java b/wifi/java/com/android/server/wifi/AbstractWifiService.java index 0f4e3a8ba20f..36f66aa81661 100644 --- a/wifi/java/com/android/server/wifi/AbstractWifiService.java +++ b/wifi/java/com/android/server/wifi/AbstractWifiService.java @@ -452,4 +452,9 @@ public abstract class AbstractWifiService extends IWifiManager.Stub { List<WifiNetworkSuggestion> networkSuggestions, String callingPackageName) { throw new UnsupportedOperationException(); } + + @Override + public String[] getFactoryMacAddresses() { + throw new UnsupportedOperationException(); + } } diff --git a/wifi/tests/src/android/net/wifi/WifiManagerTest.java b/wifi/tests/src/android/net/wifi/WifiManagerTest.java index 13c8c9ea7ead..1001b100cb3b 100644 --- a/wifi/tests/src/android/net/wifi/WifiManagerTest.java +++ b/wifi/tests/src/android/net/wifi/WifiManagerTest.java @@ -29,6 +29,7 @@ import static android.net.wifi.WifiManager.WIFI_AP_STATE_ENABLED; import static android.net.wifi.WifiManager.WIFI_AP_STATE_ENABLING; import static android.net.wifi.WifiManager.WIFI_AP_STATE_FAILED; +import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -88,6 +89,7 @@ public class WifiManagerTest { private static final int TEST_UID = 14553; private static final String TEST_PACKAGE_NAME = "TestPackage"; private static final String TEST_COUNTRY_CODE = "US"; + private static final String[] TEST_MAC_ADDRESSES = {"da:a1:19:0:0:0"}; @Mock Context mContext; @Mock @@ -1320,4 +1322,15 @@ i * Verify that a call to cancel WPS immediately returns a failure. assertEquals(WifiManager.NETWORK_SUGGESTIONS_MAX_PER_APP, mWifiManager.getMaxNumberOfNetworkSuggestionsPerApp()); } + + /** + * Verify getting the factory MAC address. + * @throws Exception + */ + @Test + public void testGetFactoryMacAddress() throws Exception { + when(mWifiService.getFactoryMacAddresses()).thenReturn(TEST_MAC_ADDRESSES); + assertArrayEquals(TEST_MAC_ADDRESSES, mWifiManager.getFactoryMacAddresses()); + verify(mWifiService).getFactoryMacAddresses(); + } } |