You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin Forms如何获取Android设备的WiFi MAC地址?

Android设备获取真实WiFi MAC地址的解决方案

为什么旧脚本拿到的MAC不对?

从Android 6.0(API 23)开始,Google就限制了第三方应用获取真实WiFi MAC地址的权限:

  • 调用WifiInfo.getMacAddress()会返回固定虚拟地址02:00:00:00:00:00
  • 到了Android 10(API 29)及以上,这个接口直接返回null
    你用的旧脚本适配的是早期Android版本,自然拿不到和系统设置一致的真实MAC。

分版本处理方案(仅针对Android)

1. Android 9及以下(API ≤28)

可以通过读取系统文件获取真实MAC,步骤如下:

  • 在Android项目的AndroidManifest.xml中添加权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  • 用Xamarin.Forms依赖服务实现读取逻辑:
    共享项目定义接口:
public interface IMacAddressHelper
{
    string GetRealWifiMac();
}

Android项目实现接口:

[assembly: Dependency(typeof(MacAddressHelper))]
namespace YourApp.Droid
{
    public class MacAddressHelper : IMacAddressHelper
    {
        public string GetRealWifiMac()
        {
            try
            {
                const string macPath = "/sys/class/net/wlan0/address";
                if (File.Exists(macPath))
                {
                    return File.ReadAllText(macPath).Trim();
                }
            }
            catch (Exception)
            {
                // 处理权限不足或文件不存在的异常
            }
            return null;
        }
    }
}

在共享项目中调用:

var macAddress = DependencyService.Get<IMacAddressHelper>().GetRealWifiMac();

2. Android 10及以上(API ≥29)

系统彻底禁止第三方应用获取真实MAC,只能用替代标识:

  • Android ID:不需要特殊权限,重启设备不会改变,仅恢复出厂设置会重置:
public string GetAndroidId()
{
    return Android.OS.Build.Serial;
    // 或使用:Settings.Secure.GetString(Android.App.Application.Context.ContentResolver, Settings.Secure.AndroidId);
}
  • IMEI/MEID:需要READ_PHONE_STATE权限,Android 10+还需额外申请特殊权限,且部分平板无IMEI,不推荐作为唯一标识。

适配建议

针对仓库设备的场景:

  • 先统计现有设备的Android版本,分批次处理
  • 若存在Android 10+设备,优先用Android ID作为设备标识,配合后台记录持有人及最后使用者信息
  • 务必在运行时动态申请必要权限,不要仅依赖Manifest的静态声明

内容的提问来源于stack exchange,提问作者Elgate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 09:42:38