Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android 6.0上获得wifi mac_Java_Android - Fatal编程技术网

Java 在Android 6.0上获得wifi mac

Java 在Android 6.0上获得wifi mac,java,android,Java,Android,我有一个使用MAC地址注册的应用程序。大家都知道,在android 6.0中,你不能再使用旧方法来实现这一点。我的问题是它似乎不是一个直接的GETMAC地址。希望有人能为android 6.0提供帮助+ 我的代码如下 public void getMacAddress() { WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wInfo = wifiMa

我有一个使用MAC地址注册的应用程序。大家都知道,在android 6.0中,你不能再使用旧方法来实现这一点。我的问题是它似乎不是一个直接的GETMAC地址。希望有人能为android 6.0提供帮助+

我的代码如下

public void getMacAddress()
{
    WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
    WifiInfo wInfo = wifiManager.getConnectionInfo();
    String macAddress = wInfo.getMacAddress();
    Log.e("address", "mac address:" + macAddress);
    pref = getSharedPreferences(Constant.PREF_APPDATA, MODE_PRIVATE);
    edit=pref.edit();

    if(macAddress!=null)
        edit.putString(Constant.P_DEVICEID, macAddress);
//  else
//      Toast.makeText(this," WiFi MAC address not found.", Toast.LENGTH_SHORT).show();

    TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    if( tm.getDeviceId()== null)
    {
        //edit.putBoolean(Constant.P_IS_TABLET, true);
        //Toast.makeText(Activity_Audio.this, "Tablet", Toast.LENGTH_SHORT).show();
    }
    else
    {
        //Toast.makeText(Activity_Audio.this, "Not Tablet", Toast.LENGTH_SHORT).show();
    }

    edit.commit();
}

我认为在Android 6+中,获取mac地址是不可取的。相反,函数总是返回00:00:00:00:00。您应该使用NetworkInterface中的getHardwareAddress()来获取它。您是否有机会告诉我需要做什么?我是个傻瓜/在NetworkInterface.getNetworkInterfaces()上循环,并在wifi接口上调用getHardwareAddress()。使用getName()并选中“wlan0”。wlan0很可能是您的wifi接口。否则你必须找到他漂亮的名字。你能给我发电子邮件吗?aiche@mt2015.com