文章目录

  • 背景
  • 思路
  • 演示
  • 代码实现

背景

  • 分享实用的功能。

思路

一般来说,机顶盒的 mac 地址一般可以在文件系统中的两个地方查看,路径是:

  • /sys/class/net/eth0/address
  • /sys/class/net/wlan0/address

一般逻辑是先取 etho/address 文件中的 mac,如果获取不到再去取 wlan0/address 文件中的 mac


演示

机顶盒的 mac 地址信息页,如下图示:

可以看到 mac 地址是 04:3c:e8:95:06:24

  • 我们通过 adb 命令进入到机顶盒的 linux 系统中,通过 cat 命令查看两个文件中的值,来验证下判断逻辑是否正确。如下:
adb shell$ cat /sys/class/net/eth0/address

$ cat /sys/class/net/wlan0/address

根据上面的两个命令和图示,可以看到我们一开始的获取 mac 地址的逻辑是正确的。下面来看下实现。


代码实现

/*** 获取mac地址,首先获取有线mac,没有则获取无线mac* @param needColon 是否需要带上冒号*                  true 需要携带冒号 - 11:22:33:44:55:66*                  false 不需要携带冒号 - 112233445566*/public static String getMac(boolean needColon) {String stbMac = getSTBMac(needColon);if (null != stbMac) {return stbMac;} else {return getWifiMac(needColon);}}
/*** Get the STB MacAddress* @param needColon*/public static String getSTBMac(boolean needColon) {try {String filePath = "/sys/class/net/eth0/address";StringBuffer sb = new StringBuffer(100);BufferedReader br = new BufferedReader(new FileReader(filePath));char[] buf = new char[1024];int len = 0;while ((len = br.read(buf)) != -1) {String readData = String.valueOf(buf, 0, len);sb.append(readData);}br.close();if (needColon){return sb.toString().trim();}return sb.toString().trim().replace(":", "");} catch (IOException e) {e.printStackTrace();return null;}}
/*** Get the wifi MacAddress* @param needColon*/public static String getWifiMac(boolean needColon) {try {Process p = Runtime.getRuntime().exec("cat /sys/class/net/wlan0/address ");InputStreamReader isr = new InputStreamReader(p.getInputStream());LineNumberReader input = new LineNumberReader(isr);String str = "";for (; null != str; ) {str = input.readLine();if (str != null) {if (needColon){return str.trim();}return str.trim().replace(":", "");}}input.close();return null;} catch (IOException e) {e.printStackTrace();return null;}}

mac 的值使用也可以不需要冒号,所以同学们自己根据业务需要确定即可。


技术永不眠!我们下期见!

Android 中获取机顶盒的 mac 地址相关推荐

  1. Android中获取手机 IMEI Mac地址 IP地址

    一.获取手机IMEI 手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IM ...

  2. Android studio 获取设备的Mac地址,wifi和以太网均可使用

    /*** 获取设备的Mac地址* @return Mac地址*/public static String getLocalMacAddress() {String Mac=null;try{Strin ...

  3. Unity——获取本机MAC地址

    Unity中获取本机Mac地址,常用于类似绑定设备的加密情况中,限制程序只可以在固定的设备上使用.首先我们需要在脚本中引用System.Net.NetworkInformation程序集,然后使用Ne ...

  4. android 获取网卡mac_Android获取本机Mac地址及IP地址方法

    1.Android  获取本机Mac 地址方法: 需要在AndroidManifest.xml文件中添加权限: public String getLocalMacAddress() { WifiMan ...

  5. 小程序中,iOS设备获取蓝牙设备的Mac地址

    遇到的问题 在使用蓝牙的过程中,我们需要获取蓝牙设备的Mac地址.在Android设备上,onBluetoothDeviceFound方法中,deviceId是蓝牙设备的Mac地址.而在 iOS设备上 ...

  6. android 获取设备的mac地址,Android编程获取设备MAC地址的实现方法

    本文实例讲述了Android编程获取设备MAC地址的实现方法.分享给大家供大家参考,具体如下: /** * 获取设备的mac地址 * * @param ac * @param callback * 成 ...

  7. php获取客户mac地址吗,如何在php与js中分别获取客户度mac地址

    如何在php与js中分别获取客户度mac地址 导语:如何在php与js中分别获取客户度mac地址的呢?学代码的你懂吗?下面的是百分网小编为大家搜集的`相关资料,供大家参考. 代码如下: class M ...

  8. android 获取mac c语言,获取设备的mac地址和IP地址(android6.0以上专用)

    /** * 获取设备HardwareAddress地址 * @return */ public static String getMachineHardwareAddress(){ Enumerati ...

  9. Java获取局域网中所有ip和Mac地址

    Java获取局域网中所有ip和Mac地址 定义一个Util public class IpAndMacUtil {/*** 获取本机Mac地址* @param ia* @return* @throws ...

最新文章

  1. JAVA 动态代理学习记录
  2. 什么是Incremental Link Table[转]
  3. MATLAB-矩阵相关计算(1)
  4. Linux进程 管理,Linux进程查看与管理以及作业控制
  5. Unknown SSL protocol error in connection to xxx:443
  6. Leecode 9. 回文数
  7. Java正则表达式匹配、替换HTML内容
  8. python WindroseAxes 报错 has no attribute ‘Appender‘
  9. php class使用方法,PHP调试类Krumo使用教程
  10. PMP 考的人多了?就没有含金量了?
  11. mysql和redis之间互相备份
  12. 使用pymongo需要手动关闭MongoDB Connection吗?
  13. php如何写代码禁用广告,不再显示广告案例(php操作cookie)
  14. 登录emc磁阵提示java版本低_安装完打开 eclipse 提示 JVM 版本较低
  15. Windows系统使用SSH连接远程服务器
  16. 烧烤摊如何走O2O之路 微博微信运营案例分享
  17. java计算费用类题目
  18. 17行python代码爬取堆糖网所有MeiNv图片
  19. python爬虫,爬取禅道BUG信息列表
  20. PS-fourday-套索工具组(抠图强化)

热门文章

  1. win7怎么设置计算机的性能,win7怎么提升电脑性能
  2. LoadCursor LoadImage
  3. VS2017 静态链接库(.lib)的制作和调用,并对环境配置进行试验
  4. 彻底解决git clone速度慢的问题(ubuntu)
  5. leanback android,Android TV之谷歌android leanback框架详解
  6. 当初面试Java岗位时的笔记,接近2万字,拿走不谢
  7. 古代密码学破解方式-频率分析法
  8. 目前微型计算机电子元件,目前微机中所广泛采用的电子元件是(.doc
  9. POI版本升级导致的导入问题
  10. APM 飞控文档翻译1