rk3288_android7.1.2 Settings-关于设备-状态信息添加以太网MAC地址信息栏

概要

现场调试人员需要查看以太网的MAC地址,但该系统状态中没有显示,我们在状态信息下直接加一栏以太网的MAC地址信息。

修改记录

--- a/packages/apps/Settings/res/values-zh-rCN/strings.xml
+++ b/packages/apps/Settings/res/values-zh-rCN/strings.xml
@@ -1053,6 +1053,7 @@
     <string name="status_roaming" msgid="2638800467430913403">"漫游"</string>
     <string name="status_operator" msgid="2274875196954742087">"网络"</string>
     <string name="status_wifi_mac_address" msgid="2202206684020765378">"WLANMAC 地址"</string>
+    <string name="status_eth_mac_address">"以太网MAC地址"</string>
     <string name="status_bt_address" msgid="4195174192087439720">"蓝牙地址"</string>
     <string name="status_serial_number" msgid="2257111183374628137">"序列号"</string>
     <string name="status_unavailable" msgid="7862009036663793314">"不可用"</string>

--- a/packages/apps/Settings/res/values/strings.xml
+++ b/packages/apps/Settings/res/values/strings.xml
@@ -2447,6 +2447,7 @@
     <string name="status_operator">Network</string>
     <!-- About phone, status item title.  The MAC address of the Wi-Fi network adapter. -->
     <string name="status_wifi_mac_address">Wi\u2011Fi MAC address</string>
+    <string name="status_eth_mac_address">ETH MAC address</string>
     <!-- About phone, status item title.  The bluetooth adapter's hardware address-->
     <string name="status_bt_address">Bluetooth address</string>
     <!-- About phone, status item title.  The hardware serial number. [CHAR LIMIT=30]-->

--- a/packages/apps/Settings/res/xml/device_info_status.xml
+++ b/packages/apps/Settings/res/xml/device_info_status.xml
@@ -53,6 +53,14 @@
         android:title="@string/status_wifi_mac_address"
         android:summary="@string/device_info_not_available"
         android:persistent="false" />
+
+       <com.android.settings.CopyablePreference android:key="eth_mac_address"
+               android:enabled="false"
+               android:shouldDisableView="false"
+               android:title="@string/status_eth_mac_address"
+               android:summary="@string/device_info_not_available"
+               android:persistent="false" />
+
     <com.android.settings.CopyablePreference android:key="bt_address"
         android:enabled="false"
         android:shouldDisableView="false"

--- a/packages/apps/Settings/src/com/android/settings/Utils.java
+++ b/packages/apps/Settings/src/com/android/settings/Utils.java
@@ -105,6 +105,9 @@ import static android.content.Intent.EXTRA_USER;
 import static android.content.Intent.EXTRA_USER_ID;
 import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
 import static android.text.format.DateUtils.FORMAT_SHOW_DATE;
+import java.net.NetworkInterface;
+import java.util.Collections;
+import java.util.List;

 public final class Utils extends com.android.settingslib.Utils {

@@ -240,6 +243,31 @@ public final class Utils extends com.android.settingslib.Utils {
         LinkProperties prop = cm.getLinkProperties(ConnectivityManager.TYPE_WIFI);
         return formatIpAddresses(prop);
     }
+
+       public static String getMacAddress(String interfaceName){
+               try{
+                       List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
+                       for (NetworkInterface intf : interfaces) {
+                               if (interfaceName != null){
+                                       if(!intf.getName().equalsIgnoreCase(interfaceName)) continue;
+                               }
+                               byte[] mac = intf.getHardwareAddress();
+                               if(mac == null) return "";
+                               StringBuilder buf = new StringBuilder();
+                               for(int idx=0;idx<mac.length;idx++)
+                                       buf.append(String.format("%02X:",mac[idx]));
+                               if(buf.length()>0) buf.deleteCharAt(buf.length()-1);
+                               return buf.toString();
+                       }
+               }catch (Exception ex) {
+                       System.out.println(ex.toString());
+                       System.out.println("------------------------------");
+                       System.out.println(ex.getMessage());
+                       System.out.println("------------------------------");
+                       ex.printStackTrace();
+               }
+               return "";
+       }

     /**
      * Returns the default link's IP addresses, if any, taking into account IPv4 and IPv6 style

--- a/packages/apps/Settings/src/com/android/settings/deviceinfo/Status.java
+++ b/packages/apps/Settings/src/com/android/settings/deviceinfo/Status.java
@@ -26,6 +26,7 @@ import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.res.Resources;
 import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 import android.os.Build;
@@ -45,6 +46,13 @@ import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;

 import java.lang.ref.WeakReference;
+import java.io.IOException;
+import java.io.DataOutputStream;
+import java.io.DataInputStream;
+import android.util.Log;
+import java.io.InputStreamReader;
+import java.lang.Process;
+import java.io.LineNumberReader;
@@ -56,6 +64,7 @@ import java.lang.ref.WeakReference;
  */
 public class Status extends SettingsPreferenceFragment {

+    private static final String TAG = "Status";
     private static final String KEY_BATTERY_STATUS = "battery_status";
     private static final String KEY_BATTERY_LEVEL = "battery_level";
     private static final String KEY_IP_ADDRESS = "wifi_ip_address";
@@ -65,6 +74,7 @@ public class Status extends SettingsPreferenceFragment {
     private static final String KEY_WIMAX_MAC_ADDRESS = "wimax_mac_address";
     private static final String KEY_SIM_STATUS = "sim_status";
     private static final String KEY_IMEI_INFO = "imei_info";
+    private static final String KEY_ETH_MAC_ADDRESS = "eth_mac_address";

     // Broadcasts to listen to for connectivity changes.
     private static final String[] CONNECTIVITY_INTENTS = {
@@ -93,6 +103,7 @@ public class Status extends SettingsPreferenceFragment {
     private Preference mIpAddress;
     private Preference mWifiMacAddress;
     private Preference mWimaxMacAddress;
+    private Preference mEthMacAddress;

     private Handler mHandler;

@@ -170,6 +181,7 @@ public class Status extends SettingsPreferenceFragment {
         mWifiMacAddress = findPreference(KEY_WIFI_MAC_ADDRESS);
         mWimaxMacAddress = findPreference(KEY_WIMAX_MAC_ADDRESS);
         mIpAddress = findPreference(KEY_IP_ADDRESS);
+        mEthMacAddress = findPreference(KEY_ETH_MAC_ADDRESS);

         mRes = getResources();
         mUnknown = mRes.getString(R.string.device_info_default);
@@ -278,6 +290,11 @@ public class Status extends SettingsPreferenceFragment {
         }
     }

+       private void setEthStatus() {
+               String macAddress = Utils.getMacAddress("eth0");
+               mEthMacAddress.setSummary(!TextUtils.isEmpty(macAddress) ? macAddress : mUnavailable);
+                }
+
     private void setWifiStatus() {
         WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
         String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
@@ -310,6 +327,7 @@ public class Status extends SettingsPreferenceFragment {
         setWimaxStatus();
         setWifiStatus();
         setBtStatus();
+        setEthStatus();
         setIpAddressStatus();
     }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值