Android获取MAC地址大全
来源:互联网 发布:ubuntu镜像下载地址 编辑:程序博客网 时间:2024/05/22 14:25
今天帮同学们梳理一下mac、wifi的工具类,持续更新~
/** * Created by caoyujie on 16/12/2. * Mac地址工具类 */public class MacAddressUtils { /** * 获取当前连接的wifi的mac地址 */ public static String getWifiMacAddress(Context context){ WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); String wifiName = info != null ? info.getBSSID() : ""; return wifiName; } /** * 获取wifi名称 */ public static String getWifiName(Context context){ WifiManager wifiMgr = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifiMgr.getConnectionInfo(); String wifiId = info != null ? info.getSSID() : ""; return wifiId; } /** * 获取手机Mac地址 * * @return */ public static String getMacAddress(Context mContext) { WifiManager wifiMgr = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInf = wifiMgr.getConnectionInfo(); // wifiInf.getMacAddress().getMacAddress方法在安卓6.0系统上获取到的Mac 都是 02:00:00:00:00:00。 String invalidMacAddress = "02:00:00:00:00:00"; if (wifiInf.getMacAddress().equals(invalidMacAddress)) { String ret = null; try { ret = getAdressMacByInterface(); if (ret != null) { return ret; } else { ret = getAddressMacByFile(wifiMgr); return ret; } } catch (IOException e) { Log.e("TAG", "Erreur lecture propriete Adresse MAC"); } catch (Exception e) { Log.e("TAG", "Erreur lecture propriete Adresse MAC "); } } else { return wifiInf.getMacAddress(); } return invalidMacAddress; } /** * 获取6.0以上系统的mac值 * @throws Exception */ private static String getAddressMacByFile(WifiManager wifiMan) throws Exception { String fileAddressMac = "/sys/class/net/wlan0/address"; String ret; int wifiState = wifiMan.getWifiState(); wifiMan.setWifiEnabled(true); File fl = new File(fileAddressMac); FileInputStream fin = new FileInputStream(fl); ret = crunchifyGetStringFromStream(fin); fin.close(); boolean enabled = WifiManager.WIFI_STATE_ENABLED == wifiState; wifiMan.setWifiEnabled(enabled); return ret; } /** * 获取6.0以上系统的mac值 * @throws Exception */ private static String crunchifyGetStringFromStream(InputStream crunchifyStream) throws IOException { if (crunchifyStream != null) { Writer crunchifyWriter = new StringWriter(); char[] crunchifyBuffer = new char[2048]; try { Reader crunchifyReader = new BufferedReader(new InputStreamReader(crunchifyStream, "UTF-8")); int counter; while ((counter = crunchifyReader.read(crunchifyBuffer)) != -1) { crunchifyWriter.write(crunchifyBuffer, 0, counter); } } finally { crunchifyStream.close(); } return crunchifyWriter.toString(); } else { return "No Contents"; } } private static String getAdressMacByInterface() { try { List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface nif : all) { if (nif.getName().equalsIgnoreCase("wlan0")) { byte[] macBytes = nif.getHardwareAddress(); if (macBytes == null) { return ""; } StringBuilder res1 = new StringBuilder(); for (byte b : macBytes) { res1.append(String.format("%02X:", b)); } if (res1.length() > 0) { res1.deleteCharAt(res1.length() - 1); } return res1.toString(); } } } catch (Exception e) { Log.e("TAG", "Erreur lecture propriete Adresse MAC "); } return null; }}
0 0
- Android获取MAC地址大全
- 获取MAC地址大全
- 获取MAC地址方法大全
- .获取MAC地址方法大全
- 获取MAC地址方法大全
- 【Android】获取Mac地址
- 【Android】获取Mac地址
- android获取mac地址
- Android 获取Mac地址
- android获取mac地址
- android获取mac地址
- 【Android】获取Mac地址
- android获取mac地址
- Android获取mac地址
- android 获取mac地址
- android 获取mac地址
- Android 获取 Mac地址
- Android 获取Mac地址
- 读写分离二
- Linux--闹钟信号
- faster rcnn可视化(修改demo.py保存网络中间结果)
- 3.POI SXSSF导出大量数据实例
- Android设备开机时间统计
- Android获取MAC地址大全
- 自定义 View 实现钟表效果
- 第14周实践-1 项目1 - 数组大折腾(1)
- String全解析
- PHP的CI框架集成Smarty的最佳方式
- laravel队列
- 百度地图覆盖物
- js中 replace replaceAll 全部替换
- 条款2:最好使用C++转型操作符