Zebra设备Android 11环境下Xamarin Forms获取MAC地址方案咨询
针对Zebra Android 11设备的硬件标识方案
结合你的场景(关联自有数据库与AirWatch设备、Android 11 MAC地址限制),以下是稳定可行的替代方案:
1. Zebra设备序列号(Serial Number)
这是首选方案,序列号是设备出厂固化的唯一标识,AirWatch默认收集该字段,且Android 11无权限限制。
代码实现(Zebra EMDK):
var enterpriseDeviceManager = EMDKManager.Instance.GetInstance(EMDKManager.FEATURE_TYPE.DEVICE); string serialNumber = enterpriseDeviceManager.DeviceInfo.SerialNumber;
若未集成EMDK,可尝试读取系统属性(Zebra企业应用通常有权限访问):
string serialNumber = Android.OS.Build.Serial;
2. IMEI/MEID(仅蜂窝版设备)
带蜂窝模块的Zebra设备可使用IMEI/MEID,全球唯一且AirWatch自动同步,需申请READ_PHONE_STATE权限。
代码实现:
// 通过TelephonyManager获取 var telephonyManager = (TelephonyManager)GetSystemService(TelephonyService); string imei = telephonyManager.Imei; // 或通过EMDK获取 var enterpriseDeviceManager = EMDKManager.Instance.GetInstance(EMDKManager.FEATURE_TYPE.DEVICE); string imei = enterpriseDeviceManager.DeviceInfo.Imei;
权限声明:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
AirWatch部署时可配置自动授予该权限。
3. Zebra专属硬件UUID
EMDK提供的设备UUID基于硬件生成,不会因系统重置或升级改变,可通过AirWatch自定义属性同步至平台。
代码实现:
var enterpriseDeviceManager = EMDKManager.Instance.GetInstance(EMDKManager.FEATURE_TYPE.DEVICE); string deviceUuid = enterpriseDeviceManager.DeviceInfo.Uuid;
选型建议
- 优先用设备序列号:无需额外权限,兼容性最强,AirWatch默认支持。
- 蜂窝设备可选IMEI:唯一性更有保障。
- 避开Android ID:恢复出厂会重置,无法稳定关联。
内容的提问来源于stack exchange,提问作者Sven Pepermans
相关产品推荐
相关产品推荐

