获取设备的mac地址可靠的方法

参考自:http://www.open-open.com/lib/view/open1433406847322.html

  /**
     * 获取设备的mac地址
     *
     * @param ac
     * @param callback
     *            成功获取到mac地址之后会回调此方法
     */
    public static void getMacAddress(final Activity ac, final SimpleCallback callback) {
        final WifiManager wm = (WifiManager) ac .getSystemService(Service.WIFI_SERVICE); 

        // 如果本次开机后打开过WIFI,则能够直接获取到mac信息。立刻返回数据。
        WifiInfo info = wm.getConnectionInfo();
        if (info != null && info.getMacAddress() != null) {
            if (callback != null) {
                callback.onComplete(info.getMacAddress());
            }
            return;
        } 

        // 尝试打开WIFI,并获取mac地址
        if (!wm.isWifiEnabled()) {
            wm.setWifiEnabled(true);
        } 

        new Thread(new Runnable() {
            @Override
            public void run() {
                int tryCount = 0;
                final int MAX_COUNT = 10; 

                while (tryCount < MAX_COUNT) {
                    final WifiInfo info = wm.getConnectionInfo();
                    if (info != null && info.getMacAddress() != null) {
                        if (callback != null) {
                            ac.runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    callback.onComplete(info.getMacAddress());
                                }
                            });
                        }
                        return;
                    } 

                    SystemClock.sleep(300);
                    tryCount++;
                } 

                // 未获取到mac地址
                if (callback != null) {
                    callback.onComplete(null);
                }
            }
        }).start();
    }
public interface SimpleCallback {
    void onComplete(String result);
}
时间: 2024-10-29 01:01:34

获取设备的mac地址可靠的方法的相关文章

Android:获取设备的mac地址可靠的方法

/** * 获取设备的mac地址 * * @param ac * @param callback * 成功获取到mac地址之后会回调此方法 */ public static void getMacAddress(final Activity ac, final SimpleCallback callback) { final WifiManager wm = (WifiManager) ac .getSystemService(Service.WIFI_SERVICE); // 如果本次开机后打

获取设备的mac地址和IP地址(android6.0以上专用)

/** * 获取设备HardwareAddress地址 * @return */public static String getMachineHardwareAddress(){ Enumeration<NetworkInterface> interfaces = null; try { interfaces = NetworkInterface.getNetworkInterfaces(); } catch (SocketException e) { e.printStackTrace();

C#获取IP及MAC地址 方法

C#获取IP及MAC地址 方法,比较齐全 using System.Net; using System; using System.Management; using System.Runtime.InteropServices; public class getIP { [DllImport("Iphlpapi.dll")] private static extern int SendARP(Int32 dest, Int32 host, ref Int64 mac, ref Int

iOS获取设备唯一标识的8种方法

8种iOS获取设备唯一标识的方法,希望对大家有用. UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可以改变设备的 UDID),移动网络可以利用 UDID 来识别移动设备. 许多开发者把 UDID 跟用户的真实姓名.密码.住址.其它数据关联起来,网络窥探者会从多个应用收集这些数据,然后顺藤摸瓜得到这个人的许多隐私数据,同时大部分应用确实在频繁传输 UDID 和私人信息. 为了避免集体诉讼,苹果最终决

IOS获取设备唯一标识的八种方法

免责声明:本文章来源于其他博客整理 参考:http://www.2cto.com/kf/201308/237648.html 参考:http://www.2cto.com/kf/201311/255684.html 在iOS系统中,获取设备唯一标识的方法有很多: 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成(越狱的设备通过某些工具可以改变设备的U

Android -- 获取IP和MAC地址

通过InetAddress.getLocalHost()得到始终是"127.0.0.1",要想得到真正的网络ip地址要通过下面的方法: 首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下: <uses-permission android:name="android.permission.INTERNET"/> <!--必写--> <uses-permission android:name="a

[C#]获取电脑的MAC地址

C#实现获取电脑的MAC地址 /// <summary>    /// Microsoft提供的WMI(Windows Management Instrumentation)中提供了一个    /// Win32_NetworkAdapterConfiguration的类,定义了获取MAC地址的方法,因此只要构造一个定义为Win32_NetworkAdapter     /// Configuration的WMI类,从中取出MAC地址的值即可.需要手动添加System.Management链接

获取IP和mac地址

1.获取IP static string GetLocalIp() { string hostname = Dns.GetHostName();//得到本机名 //IPHostEntry localhost = Dns.GetHostByName(hostname);//方法已过期,只得到IPv4的地址 IPHostEntry localhost = Dns.GetHostEntry(hostname); IPAddress localaddr = localhost.AddressList[0

PHP获取服务器的mac地址类

PHP获取服务器的mac地址类,不是客户端的. 1 <?php 2 3 class GetMacAddr{ 4 5 var $return_array = array(); // 返回带有MAC地址的字串数组 6 var $mac_addr; 7 8 function GetMacAddr($os_type){ 9 switch ( strtolower($os_type) ){ 10 case "linux": 11 $this->forLinux(); 12 break