精华内容
下载资源
问答
  • Java如何获取Linux或安卓Android设备的mac地址呢?方法非常简单,只需要使用下方代码即可轻松通过java获取mac地址了,代码如下:publicStringgetMacAddress(){StringmacAddress=null;Stringstr="";try{//linux下查询...

    Java如何获取Linux或安卓Android设备的mac地址呢?方法非常简单,只需要使用下方代码即可轻松通过java获取mac地址了,代码如下:public String getMacAddress() {

    String macAddress = null;

    String str = "";

    try {

    //linux下查询网卡mac地址的命令

    Process pp = Runtime.getRuntime().exec("cat /sys/class/net/eth0/address");

    InputStreamReader ir = new InputStreamReader(pp.getInputStream());

    LineNumberReader input = new LineNumberReader(ir);

    for (; null != str; ) {

    str = input.readLine();

    if (str != null) {

    macAddress = str.trim();// 去空格

    break;

    }

    }

    } catch (IOException ex) {

    ex.printStackTrace();

    }

    return macAddress;

    }

    Java获取mac地址的方法的原理其实就是用Java执行一条Linux获取mac地址的命令而已,如下:cat /sys/class/net/eth0/address

    来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/java/1014.html

    展开全文
  • 关于获取安卓设备的mac地址

    千次阅读 2018-01-03 16:26:50
    今日发现一个问题,系统要求从设备获取一个唯一码作为当前登录用户唯一标识;...之前尝试过很多方法,最后决定采用mac地址。...官方获取mac地址的方法是: 1 2 3 4 5 6 7

    原文地址:https://www.cnblogs.com/hankzhouAndroid/p/6554131.html


    今日发现一个问题,系统要求从设备上获取一个唯一码作为当前登录用户的唯一标识;

    之前尝试过很多方法,最后决定采用mac地址。

    官方获取mac地址的方法是:

    1
    2
    3
    4
    5
    6
    7
    public static String getWifiMac(Context ctx) {
            WifiManager wifi = (WifiManager) ctx.getSystemService(Context.WIFI_SERVICE);
            WifiInfo info = wifi.getConnectionInfo();
            String str = info.getMacAddress();
            if (str == null) str = "";
            return str;
        }

    但是最后发现,某些设备上(比如乐视2手机,谷歌的Nexus9 pad),用这种方式获取的mac地址都是02:00:00:00:00:00 .

    并不能起到唯一标识的作用。

    后来发现,Android的内核是linux,那么应该可以通过shell命令的方式来获取。

    代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /**
         * 这是使用adb shell命令来获取mac地址的方式
         * @return
         */
        public static String getMac() {
            String macSerial = null;
            String str = "";
     
            try {
                Process pp = Runtime.getRuntime().exec("cat /sys/class/net/wlan0/address ");
                InputStreamReader ir = new InputStreamReader(pp.getInputStream());
                LineNumberReader input = new LineNumberReader(ir);
     
                for (; null != str; ) {
                    str = input.readLine();
                    if (str != null) {
                        macSerial = str.trim();// 去空格
                        break;
                    }
                }
            catch (IOException ex) {
                // 赋予默认值
                ex.printStackTrace();
            }
            return macSerial;
        }

      解决上述两种设备上mac地址获取错误的问题。

         可见,就算是谷歌官方给出的解决方案也未必可靠,要根据实际情况酌情考虑使用。

      另外,尝试了一下在4G网络下获取mac地址,结果是null。说明 4G网络下不会有mac地址这一说,因为根本获取不到。3G网也应该类似(没做试验)。

      但是有些设备,运行shell命令会报错:权限被拒绝。(Nexus 9 pad亲测,这个方法不灵);这就很尴尬了。。


    展开全文
  • public String GetDeviceMAC() {String strMacAddr ...try {// 获得IpD地址InetAddress ip = getLocalInetAddress();byte[] b = NetworkInterface.getByInetAddress(ip).getHardwareAddress();StringBuffer buffer =...

    public String GetDeviceMAC() {

    String strMacAddr = null;

    try {

    // 获得IpD地址

    InetAddress ip = getLocalInetAddress();

    byte[] b = NetworkInterface.getByInetAddress(ip)

    .getHardwareAddress();

    StringBuffer buffer = new StringBuffer();

    for (int i = 0; i < b.length; i++) {

    if (i != 0) {

    buffer.append(':');

    }

    String str = Integer.toHexString(b[i] & 0xFF);

    buffer.append(str.length() == 1 ? 0 + str : str);

    }

    strMacAddr = buffer.toString().toUpperCase();

    } catch (Exception e) {

    }

    Log.d("MAC2" , "getCPUSerial the result is = " );

    return strMacAddr;

    }

    private InetAddress getLocalInetAddress() {

    InetAddress ip = null;

    try {

    // 列举

    Enumeration en_netInterface = NetworkInterface

    .getNetworkInterfaces();

    while (en_netInterface.hasMoreElements()) {// 是否还有元素

    NetworkInterface ni = (NetworkInterface) en_netInterface

    .nextElement();// 得到下一个元素

    Enumeration en_ip = ni.getInetAddresses();// 得到一个ip地址的列举

    while (en_ip.hasMoreElements()) {

    ip = en_ip.nextElement();

    if (!ip.isLoopbackAddress()

    && ip.getHostAddress().indexOf(":") == -1)

    break;

    else

    ip = null;

    }

    if (ip != null) {

    break;

    }

    }

    } catch (SocketException e) {

    e.printStackTrace();

    }

    return ip;

    }

    private String getLocalIpAddress() {

    try {

    for (Enumeration en = NetworkInterface

    .getNetworkInterfaces(); en.hasMoreElements(); ) {

    NetworkInterface intf = en.nextElement();

    for (Enumeration enumIpAddr = intf

    .getInetAddresses(); enumIpAddr.hasMoreElements(); ) {

    InetAddress inetAddress = enumIpAddr.nextElement();

    if (!inetAddress.isLoopbackAddress()) {

    return inetAddress.getHostAddress().toString();

    }

    }

    }

    } catch (SocketException ex) {

    ex.printStackTrace();

    }

    return null;

    }

    展开全文
  • public String GetDeviceMAC() { String strMacAddr = null; try { // 获得IpD地址 InetAddress ip = getLocalInetAddress(); byte[] b = NetworkInterface.g...
    public String GetDeviceMAC() {
           String strMacAddr = null;
           try {
               // 获得IpD地址
               InetAddress ip = getLocalInetAddress();
               byte[] b = NetworkInterface.getByInetAddress(ip)
                       .getHardwareAddress();
               StringBuffer buffer = new StringBuffer();
               for (int i = 0; i < b.length; i++) {
                   if (i != 0) {
                       buffer.append(':');
                   }
                   String str = Integer.toHexString(b[i] & 0xFF);
                   buffer.append(str.length() == 1 ? 0 + str : str);
               }
               strMacAddr = buffer.toString().toUpperCase();
           } catch (Exception e) {
    
    
           }
           Log.d("MAC2" , "getCPUSerial the result is = " );
           return strMacAddr;
       }
    
    
    private  InetAddress getLocalInetAddress() {
           InetAddress ip = null;
           try {
               // 列举
               Enumeration<NetworkInterface> en_netInterface = NetworkInterface
                       .getNetworkInterfaces();
               while (en_netInterface.hasMoreElements()) {// 是否还有元素
                   NetworkInterface ni = (NetworkInterface) en_netInterface
                           .nextElement();// 得到下一个元素
                   Enumeration<InetAddress> en_ip = ni.getInetAddresses();// 得到一个ip地址的列举
                   while (en_ip.hasMoreElements()) {
                       ip = en_ip.nextElement();
                       if (!ip.isLoopbackAddress()
                               && ip.getHostAddress().indexOf(":") == -1)
                           break;
                       else
                           ip = null;
                   }
    
    
                   if (ip != null) {
                       break;
                   }
               }
           } catch (SocketException e) {
    
    
               e.printStackTrace();
           }
           return ip;
       }
    
    
    private  String getLocalIpAddress() {
            try {
                for (Enumeration<NetworkInterface> en = NetworkInterface
                        .getNetworkInterfaces(); en.hasMoreElements(); ) {
                    NetworkInterface intf = en.nextElement();
                    for (Enumeration<InetAddress> enumIpAddr = intf
                            .getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
                        InetAddress inetAddress = enumIpAddr.nextElement();
                        if (!inetAddress.isLoopbackAddress()) {
                            return inetAddress.getHostAddress().toString();
                        }
                    }
                }
            } catch (SocketException ex) {
                ex.printStackTrace();
            }
            return null;
        }

    转载于:https://www.cnblogs.com/LCLBook/p/11352633.html

    展开全文
  • 通过安卓应用获取任意蓝牙设备的MAC地址 2014-12-24 19:59 7351人阅读 评论(1) 收藏 举报  分类:   Android 开发(64)  版权声明:本文为博主原创文章,未经博主允许不得转载。 ...
  • 有些安卓设备不仅有无线wifi的mac地址,还有有线网卡的mac地址,下面是几中获取方法。1.直接上代码,以下几种方法只能获取有线网卡MAC//得到有线网卡的MAC地址 public static String getWireMac(){ String ...
  • public String GetDeviceMAC() {String strMacAddr ...try {// 获得IpD地址InetAddress ip = getLocalInetAddress();byte[] b = NetworkInterface.getByInetAddress(ip).getHardwareAddress();StringBuffer buffer =...
  • 代码没问题, 应该是系统限制了硬件标识符访问权为给用户提供更严格数据保护,从此版本开始,对于使用 WLAN API 和 Bluetooth API 应用,Android 移除了对设备本地硬件标识符编程访问权。WifiInfo....
  • 正如在评论中已经指出那样,可以通过WifiManager接收MAC地址。WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = manager.getConnectionInfo(); String address = ...
  • 安卓6.0以下的设备上,通过WifiManager.getConnectionInfo().getMacAddress()即可获取WLAN物理地址,而在6.0及以上,以此方式获取的MAC地址为固定值02:00:00:00:00:00,而非真实值解决方案WlanMacAddressGetter....
  • 安卓6.0以下的设备上,通过WifiManager....而在6.0及以上,以此方式获取的MAC地址为固定值02:00:00:00:00:00,而非真实值 解决方案 WlanMacAddressGetter.java package com.example.buyishi.myapplica...
  • 标签:快下班了,现在总结一下如何使用Java代码获取Android移动终端Mac地址:通过设备开通WiFi连接获取Mac地址是最可取,代码如下:/*** 设备开通WiFi连接,通过wifiManager获取Mac地址** @author 高焕杰*/public ...
  • 【BLE】CC2541获取设备的MAC地址实验

    千次阅读 2016-10-11 16:45:30
    安卓调试工具扫描时直接显示就是MAC地址。 苹果设备是以UUID方式显示。 所以我们直接用安卓设备来测试。我们连接时可以知道主机地址。 变量是gapRole_ConnectedDevAddr,可以在peripherial.c里搜索GAP_LINK_...
  • 得到局域网网段,可由自己机器IP来确定 (也可以手动获取主机IP-CMD-ipconfig /all)2.根据IP类型,一次遍历局域网内IP地址JAVA类,编译之后直接运行便可以得到局域网内所有IP,具体怎样使用你自己编写相应代码调用便...
  • 众所周知在安卓开发中,我们经常使用WifiManager获取MAC地址做设备映射,但会出现这样...综上所述最靠谱的方法还是直接用busybox读取系统文件中的MAC地址比较稳妥。publicStringgetMacAddress(){Stringresult="";St...
  • 安卓获取手机唯一设备

    万次阅读 2018-01-25 12:07:51
    感谢该作者提供方法。... 之前项目都是获取imei码...现在,更换方案,使用MAC地址来作为唯一的设备码。 由于获取mac码需要设备开启过WiFi,若从未开启过,则返回空。 所以,思路就是。在获取MAC地址之前先判断当前WiF
  • 最近在做一个需要上下位机的项目,我负责的任务下位机,使用的主控芯片...在安卓系统上进展顺利,但是在ios上的时候,这个过程遇到的问题,ios中无法直接获取蓝牙的mac地址。写上位机的负责人发给了我一个链接https:...
  • 通常,在Android中获取设备唯一标识码有以下几种方案,比如直接获取DEVICE_ID,获取MAC地址,自定义生成一串唯一标识码等 这里推荐以下这种方案(自定义生成一串唯一标识码方式之一): AndroidId 和 ...
  • android安卓9.0怎么样获取蓝牙信息,让手机变成一个可以周期性发送包含蓝牙mac地址广播包的设备? 加我微信18103869818,解决这个问题,必有重谢,具体私聊
  • WiFi设备MAC地址的获取-----安卓端

    千次阅读 2015-05-12 19:42:42
    几天前隔壁机械学院找我一起做个项目,说是什么基于WiFi定位系统,我查了下资料,想了...先是安卓周围WiFi信息的获取 WiFiActivity: package com.example.wifiget; import java.util.List; import com.
  • WiFi设备MAC地址的获取-----服务器端

    千次阅读 2015-05-12 19:56:27
    很简单,就是一个接收安卓信息,然后转存到数据库中 ServerForGetMethod: package com.gm.servlet; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import ...
  • unity获取mac地址(转)

    千次阅读 2019-05-15 11:08:39
    在软件开发中可以会用到mac地址作为,设备的唯一标示,我们也可以通过unity获取,经测试pc,ios都可以但是安卓没有获取到。 代码如下: using UnityEngine; using System.Collections; using System.Net....
  • 在软件开发中可以会用到mac地址作为,设备的唯一标示,我们也可以通过unity获取,经测试pc,ios都可以但是安卓没有获取到。 代码如下: using UnityEngine; using System.Collections; using System.Net....

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

安卓获取设备的mac地址