Wifi Direct - 此设备地址不适用于 android 10

Posted

技术标签:

【中文标题】Wifi Direct - 此设备地址不适用于 android 10【英文标题】:Wifi Direct - This device address not work on android 10 【发布时间】:2020-09-07 21:16:46 【问题描述】:

我使用此方法获取设备的 MAC 地址。这在 android 9 及更低版本中运行良好。但在 Android 10 中,MAC 地址没有正确给出,每次都会给出这个值:02: 00: 00: 00: 00: 00

public class WifiDirectBroadcastReceiver extends BroadcastReceiver 

@Override
public void onReceive(Context context, Intent intent) 
    String action = intent.getAction();

    switch (action) 
     
        case WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION:

            WifiP2pDevice device = intent.getParcelableExtra(WifiP2pManager.EXTRA_WIFI_P2P_DEVICE);

            Log.i("My device wifi direct Mac address", device.deviceAddress);

            break;
     


【问题讨论】:

It is supposed to be random。无论如何,除非您的应用是设备所有者应用,否则您不应该有权访问 MAC 地址。 【参考方案1】:
  public String getWFDMacAddress() 
        try 
            List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
            for (NetworkInterface ntwInterface : interfaces) 

                if (ntwInterface.getName().equalsIgnoreCase("p2p0")) 
                    byte[] byteMac = ntwInterface.getHardwareAddress();
                    if (byteMac == null) 
                        return null;
                    
                    StringBuilder strBuilder = new StringBuilder();
                    for (byte b : byteMac) 
                        strBuilder.append(String.format("%02X:", b));
                    

                    if (strBuilder.length() > 0) 
                        strBuilder.deleteCharAt(strBuilder.length() - 1);
                    

                    return strBuilder.toString();
                

            
         catch (Exception ignored) 
        
        return null;
    

【讨论】:

以上是关于Wifi Direct - 此设备地址不适用于 android 10的主要内容,如果未能解决你的问题,请参考以下文章

在wifi-direct p2p连接中获取对等设备的IP地址[重复]

WiFi Direct 在持续连接期间重新分配组所有者

如何在 WiFi Direct 中获取非群组所有者的 IP 地址?

重大位置更改不适用于仅 Wifi 的设备

如何在没有 MAC 地址的情况下使用 WiFi Direct p2p_connect 到设备? (树莓派和安卓)

Android Wifi Direct - 基于距离的 P2P 文件共享