如何在Android棉花糖中获取Wi-Fi Mac地址 [英] How to get Wi-Fi Mac address in Android Marshmallow

查看:397
本文介绍了如何在Android棉花糖中获取Wi-Fi Mac地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从棉花糖开始,我将WiFi MAC地址用作唯一ID,出于安全原因返回假MAC地址.与此相关,我的Android应用程序的行为有所不同.如何获取Android设备的实际MAC地址.

I am using WiFi MAC address as Unique id, from Marshmallow onwards returning fake MAC address(for security reason). With this my Android application behaves differently. How to get the actual MAC address of the Android device.

我正在使用以下代码段.

I am using the following code-snippet.

WifiManager wmgr = (WifiManager)getSystemService(Context.WIFI_SERVICE);
String wifiId = wmgr.getConnectionInfo().getMacAddress();

以下权限已添加到清单文件中.

Following permissions are added in Manifest file.

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

推荐答案

有一种变通方法来获取Android 6.0中的Mac地址.

There is a work-around to get the Mac address in Android 6.0.

首先,您需要添加Internet用户权限.

First you need to add Internet user permission.

<uses-permission android:name="android.permission.INTERNET" />

然后,您可以通过NetworkInterfaces API找到Mac.

Then you can find the mac over the NetworkInterfaces API.

public static String getMacAddr() {
    try {
        List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());
        for (NetworkInterface nif : all) {
            if (!nif.getName().equalsIgnoreCase("wlan0")) continue;

            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 ex) {
    }
    return "02:00:00:00:00:00";
}

来源: http://robinhenniges.com/en/android6-get- mac-address-programmatically

这篇关于如何在Android棉花糖中获取Wi-Fi Mac地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆