获取android一体机的Mac地址

编程入门 行业动态 更新时间:2024-10-21 20:40:26

获取android一体机的Mac<a href=https://www.elefans.com/category/jswz/34/1770965.html style=地址"/>

获取android一体机的Mac地址

引言

最近在做一个医院专家介绍的网页展示,说起来没什么难度。很简单的一个东西,但是有一点把我恶心到了,前端给我的ip地址中需要拼接mac地址。本以为没什么难度,可以还是被坑了一把。

获取Mac

本来一开始,也没觉得是回事。无外乎就是获取mac,照着很多人通俗的做法就是使用wifiManager这个方法。

WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
mac = wifiManager.getConnectionInfo().getMacAddress();

很简单就两句话,但是需要注意的一点是getSystemService()这个方法。在android studio2.3以后一定要在这个方法前添加getApplicationContext()这个方法,否则编译可以成功运动,但是打包Apk的时候就会报错。
好了接下来说一下我的问题,这个方法虽然说可以获取到mac倒是必须是在连接wifi的前提下才可以,不然的话就会报null。然而,我这里做的android盒子程序是要装的盒子上的,可是这个盒子又不能连wifi。简而言之就是只能插网线,这下完蛋了。这个方法不能用,该怎么办呢?看来只能另寻出路。有句老话说,有事请Google。这里也不说废话了直接上代码。

Process ppyx = null;try {ppyx = Runtime.getRuntime().exec("cat /sys/class/net/eth0/address ");} catch (IOException e) {e.printStackTrace();}InputStreamReader ir = new InputStreamReader(ppyx.getInputStream());LineNumberReader input = new LineNumberReader(ir);for (; null != str;) {try {str = input.readLine();} catch (IOException e) {e.printStackTrace();}if (str != null) {mac = str.trim();// 去空格break;}}

通过上面的方法就可以完美的解决我的问题了。这个方法是获取系统的文件下面有个文件里的保存的mac地址,其中的/sys/class/net/eth0/address是默认路径(不同的机器可能会不同,可以从目前的情况来看,并没有什么不同)。很简单的几句话,也没什么好解释的。(还有此方法获取的mac和wifi获取的mac是不一样的,因为这是两个mac,希望大家不要纠结为什么这两个mac不一样)

总结

再简单的东西,也不能轻视。最后坑的只能是自己……

更多推荐

获取android一体机的Mac地址

本文发布于:2024-02-25 14:03:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699218.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:地址   android   一体机   Mac

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!