zoukankan      html  css  js  c++  java
  • Qt 中使用Java代码获取安卓设备的MAC地址(安卓9.0)

    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;
        }
  • 相关阅读:
    切换RequiredFieldValidator和RegularExpressionValidator提示信息的控件
    添加删除查询字符串中的参数
    动易订单数据表关系
    页面中文乱码问题收集(原创)
    URLRewrite 在 iis6+iis7中的配置
    ASP.NET面试题(英文)
    execve
    pipe管道通信阻塞
    pipe
    linux管道通信
  • 原文地址:https://www.cnblogs.com/LCLBook/p/11352633.html
Copyright © 2011-2022 走看看