Android编程获取设备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);
    // 如果本次开机后打开过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();
}

SimpleCallback是一个简单的回调接口:

public interface SimpleCallback {
  void onComplete(String result);
}

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android编程之activity操作技巧总结》、《Android资源操作技巧汇总》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android操作SQLite数据库技巧总结》、《Android数据库操作技巧总结》、《Android编程开发之SD卡操作方法汇总》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

时间: 2017-01-20

android 获取本机的IP地址和mac物理地址的实现方法

获取本机IP地址 public String getLocalIpAddress() { WifiManager wifiManager = (WifiManager) getSystemService(android.content.Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddress = wifiInfo.getIpAddress(); try { return In

Android手机获取Mac地址的方法

最常用的方法,通过WiFiManager获取: /** * 通过WiFiManager获取mac地址 * @param context * @return */ private static String tryGetWifiMac(Context context) { WifiManager wm = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); WifiInfo wi

Android手机获取Mac地址的几种方法

最常用的方法,通过WiFiManager获取: /** * 通过WiFiManager获取mac地址 * @param context * @return */ private static String tryGetWifiMac(Context context) { WifiManager wm = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); WifiInfo wi

Java获取mac地址的方法

本文实例讲述了Java获取mac地址的方法.分享给大家供大家参考.具体如下: /* * GetMacAddress .java * * description:get Mac addreess * * @author hadeslee * * Created on 2007-9-27, 9:11:15 * * To change this template, choose Tools | Templates * and open the template in the editor. */ pa

C#实现获取MAC地址的方法

本文实例讲述了C#实现获取MAC地址的方法,是一个非常常见而且实用的功能,具体方法如下: 主要功能代码如下: /// <summary> /// 根据网卡类型来获取mac地址 /// </summary> /// <param name="networkType">网卡类型</param> /// <param name="macAddressFormatHanlder">格式化获取到的mac地址</

java根据本地IP获取mac地址的方法

本文实例为大家分享了java根据本地IP获取mac地址的具体代码,供大家参考,具体内容如下 import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.net.UnknownHostException; public class MacAddress { /** * @param args * @throws UnknownHostExcep

Android手机获取IP地址的两种方法

1.使用WIFI 首先设置用户权限 复制代码 代码如下: <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>  <

android手机获取唯一标识的方法

获取手机唯一标识 拼接的方式获取手机唯一标识 第一种方式是获取IMEI,但是有的手机如果不是正品的话,就获取不到所以通过这一种方式还是会出现有的设备是没有唯一标识的 第二种方式获取手机卡的序列号,当然这种也不是唯一的,因为有的手机是双卡双待的所以可能会出现空的情况 第三种方式是万能的也就是UUID,随机生成一个标识,但是必须保存在本地,防止下一次进入的时候再次生成随机码 进行三层判断,来获取手机的唯一标识. //获取手机的唯一标识 public String getPhoneSign(){ St

java 获取用户的MAC地址多种方法实例详解

java实现获取用户的MAC地址方法: 方法一:将本机地址与局域网内其他机器区分开来 /** * 根据IP地址获取mac地址 * @param ipAddress 127.0.0.1 * @return * @throws SocketException * @throws UnknownHostException */ public static String getLocalMac(String ipAddress) throws SocketException, UnknownHostEx

java 获取mac地址的两种方法(推荐)

我在网上找了一下获取mac地址的方法,找了两种比较不太一样的方法. 第一种 public static void main(String[] args) throws Exception { InetAddress ia = InetAddress.getLocalHost(); System.out.println(getMACAddress(ia)); } private static String getMACAddress(InetAddress ia) throws Exception

iOS如何获取手机的Mac地址

首先说明下,下面两种方法均可以获得手机的mac地址,但是有个限制,是在iOS7以下才可以获得.iOS7以后苹果对于sysctl和ioctl进行了技术处理,MAC地址返回的都是02:00:00:00:00:00. 官方文档上这样写的: "Twolow-level networking APIs that used to return a MAC address now return thefixed value 02:00:00:00:00:00. The APIs in question are