From 3f4848102c423faa41ab3ca5827be1e630686f60 Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Tue, 5 Dec 2017 10:30:31 +0900 Subject: Expose the MacAddress class in the api Test: built, flashed, $ runtest frameworks-net Bug: 69390696 Change-Id: Ica5efdf5ffe8ad2500a87f574508a2bcd074b33d Merged-In: Ica5efdf5ffe8ad2500a87f574508a2bcd074b33d (cherry picked from commit d411cf61ed5b948aaf6f6234217d6c6999c35159) --- api/current.txt | 17 +++++++++++++++++ core/java/android/net/MacAddress.java | 2 -- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/api/current.txt b/api/current.txt index a07e1fdc5131..8389232351bc 100644 --- a/api/current.txt +++ b/api/current.txt @@ -25749,6 +25749,23 @@ package android.net { enum_constant public static final android.net.LocalSocketAddress.Namespace RESERVED; } + public final class MacAddress implements android.os.Parcelable { + method public int addressType(); + method public int describeContents(); + method public static android.net.MacAddress fromBytes(byte[]); + method public static android.net.MacAddress fromString(java.lang.String); + method public boolean isLocallyAssigned(); + method public byte[] toByteArray(); + method public java.lang.String toSafeString(); + method public void writeToParcel(android.os.Parcel, int); + field public static final android.net.MacAddress BROADCAST_ADDRESS; + field public static final android.os.Parcelable.Creator CREATOR; + field public static final int TYPE_BROADCAST = 3; // 0x3 + field public static final int TYPE_MULTICAST = 2; // 0x2 + field public static final int TYPE_UNICAST = 1; // 0x1 + field public static final int TYPE_UNKNOWN = 0; // 0x0 + } + public class MailTo { method public java.lang.String getBody(); method public java.lang.String getCc(); diff --git a/core/java/android/net/MacAddress.java b/core/java/android/net/MacAddress.java index 5620a627df7f..34588614fcc8 100644 --- a/core/java/android/net/MacAddress.java +++ b/core/java/android/net/MacAddress.java @@ -33,8 +33,6 @@ import java.util.Random; * * This class only supports 48 bits long addresses and does not support 64 bits long addresses. * Instances of this class are immutable. - * - * @hide */ public final class MacAddress implements Parcelable { -- cgit v1.2.3-59-g8ed1b From a0ecf38d302ef67aa9f767b1072369f8c417952d Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Fri, 15 Dec 2017 10:07:35 +0900 Subject: MacAddress: address api review comments 1) toSafeString() is renamed to toOuiString() 2) toOuiString() returns a String that only contains the first 3 bytes of the mac address. Bug: 70336442 Test: runtest frameworks-net Change-Id: I798d8fec32dbff5687a682028e5d90eb941f81c1 --- api/current.txt | 2 +- core/java/android/net/MacAddress.java | 9 +++++---- tests/net/java/android/net/MacAddressTest.java | 12 ++++++------ 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/api/current.txt b/api/current.txt index 8389232351bc..b3765d9deda3 100644 --- a/api/current.txt +++ b/api/current.txt @@ -25756,7 +25756,7 @@ package android.net { method public static android.net.MacAddress fromString(java.lang.String); method public boolean isLocallyAssigned(); method public byte[] toByteArray(); - method public java.lang.String toSafeString(); + method public java.lang.String toOuiString(); method public void writeToParcel(android.os.Parcel, int); field public static final android.net.MacAddress BROADCAST_ADDRESS; field public static final android.os.Parcelable.Creator CREATOR; diff --git a/core/java/android/net/MacAddress.java b/core/java/android/net/MacAddress.java index 34588614fcc8..d6992aaede5f 100644 --- a/core/java/android/net/MacAddress.java +++ b/core/java/android/net/MacAddress.java @@ -130,11 +130,12 @@ public final class MacAddress implements Parcelable { } /** - * @return a String representation of the OUI part of this MacAddres, - * with the lower 3 bytes constituting the NIC part replaced with 0. + * @return a String representation of the OUI part of this MacAddress made of 3 hexadecimal + * numbers in [0,ff] joined by ':' characters. */ - public String toSafeString() { - return stringAddrFromLongAddr(mAddr & OUI_MASK); + public String toOuiString() { + return String.format( + "%02x:%02x:%02x", (mAddr >> 40) & 0xff, (mAddr >> 32) & 0xff, (mAddr >> 24) & 0xff); } @Override diff --git a/tests/net/java/android/net/MacAddressTest.java b/tests/net/java/android/net/MacAddressTest.java index 558dbb69aeb6..473dc538f09d 100644 --- a/tests/net/java/android/net/MacAddressTest.java +++ b/tests/net/java/android/net/MacAddressTest.java @@ -73,18 +73,18 @@ public class MacAddressTest { } @Test - public void testToSafeString() { + public void testToOuiString() { String[][] macs = { - {"07:00:d3:56:8a:c4", "07:00:d3:00:00:00"}, - {"33:33:aa:bb:cc:dd", "33:33:aa:00:00:00"}, - {"06:00:00:00:00:00", "06:00:00:00:00:00"}, - {"07:00:d3:56:8a:c4", "07:00:d3:00:00:00"} + {"07:00:d3:56:8a:c4", "07:00:d3"}, + {"33:33:aa:bb:cc:dd", "33:33:aa"}, + {"06:00:00:00:00:00", "06:00:00"}, + {"07:00:d3:56:8a:c4", "07:00:d3"} }; for (String[] pair : macs) { String mac = pair[0]; String expected = pair[1]; - assertEquals(expected, MacAddress.fromString(mac).toSafeString()); + assertEquals(expected, MacAddress.fromString(mac).toOuiString()); } } -- cgit v1.2.3-59-g8ed1b