Android 中获取机顶盒的 mac 地址
文章目录
- 背景
- 思路
- 演示
- 代码实现
背景
- 分享实用的功能。
思路
一般来说,机顶盒的 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 地址相关推荐
- Android中获取手机 IMEI Mac地址 IP地址
一.获取手机IMEI 手机在生产时,每部手机均有一个唯一的标识(ID),国际上采用国际移动设备身份码(IMEI, International Mobile Equipment Identity).IM ...
- Android studio 获取设备的Mac地址,wifi和以太网均可使用
/*** 获取设备的Mac地址* @return Mac地址*/public static String getLocalMacAddress() {String Mac=null;try{Strin ...
- Unity——获取本机MAC地址
Unity中获取本机Mac地址,常用于类似绑定设备的加密情况中,限制程序只可以在固定的设备上使用.首先我们需要在脚本中引用System.Net.NetworkInformation程序集,然后使用Ne ...
- android 获取网卡mac_Android获取本机Mac地址及IP地址方法
1.Android 获取本机Mac 地址方法: 需要在AndroidManifest.xml文件中添加权限: public String getLocalMacAddress() { WifiMan ...
- 小程序中,iOS设备获取蓝牙设备的Mac地址
遇到的问题 在使用蓝牙的过程中,我们需要获取蓝牙设备的Mac地址.在Android设备上,onBluetoothDeviceFound方法中,deviceId是蓝牙设备的Mac地址.而在 iOS设备上 ...
- android 获取设备的mac地址,Android编程获取设备MAC地址的实现方法
本文实例讲述了Android编程获取设备MAC地址的实现方法.分享给大家供大家参考,具体如下: /** * 获取设备的mac地址 * * @param ac * @param callback * 成 ...
- php获取客户mac地址吗,如何在php与js中分别获取客户度mac地址
如何在php与js中分别获取客户度mac地址 导语:如何在php与js中分别获取客户度mac地址的呢?学代码的你懂吗?下面的是百分网小编为大家搜集的`相关资料,供大家参考. 代码如下: class M ...
- android 获取mac c语言,获取设备的mac地址和IP地址(android6.0以上专用)
/** * 获取设备HardwareAddress地址 * @return */ public static String getMachineHardwareAddress(){ Enumerati ...
- Java获取局域网中所有ip和Mac地址
Java获取局域网中所有ip和Mac地址 定义一个Util public class IpAndMacUtil {/*** 获取本机Mac地址* @param ia* @return* @throws ...
最新文章
- JAVA 动态代理学习记录
- 什么是Incremental Link Table[转]
- MATLAB-矩阵相关计算(1)
- Linux进程 管理,Linux进程查看与管理以及作业控制
- Unknown SSL protocol error in connection to xxx:443
- Leecode 9. 回文数
- Java正则表达式匹配、替换HTML内容
- python WindroseAxes 报错 has no attribute ‘Appender‘
- php class使用方法,PHP调试类Krumo使用教程
- PMP 考的人多了?就没有含金量了?
- mysql和redis之间互相备份
- 使用pymongo需要手动关闭MongoDB Connection吗?
- php如何写代码禁用广告,不再显示广告案例(php操作cookie)
- 登录emc磁阵提示java版本低_安装完打开 eclipse 提示 JVM 版本较低
- Windows系统使用SSH连接远程服务器
- 烧烤摊如何走O2O之路 微博微信运营案例分享
- java计算费用类题目
- 17行python代码爬取堆糖网所有MeiNv图片
- python爬虫,爬取禅道BUG信息列表
- PS-fourday-套索工具组(抠图强化)
热门文章
- win7怎么设置计算机的性能,win7怎么提升电脑性能
- LoadCursor LoadImage
- VS2017 静态链接库(.lib)的制作和调用,并对环境配置进行试验
- 彻底解决git clone速度慢的问题(ubuntu)
- leanback android,Android TV之谷歌android leanback框架详解
- 当初面试Java岗位时的笔记,接近2万字,拿走不谢
- 古代密码学破解方式-频率分析法
- 目前微型计算机电子元件,目前微机中所广泛采用的电子元件是(.doc
- POI版本升级导致的导入问题
- APM 飞控文档翻译1