Xamarin Android工作配置文件下EMDK条码依赖组件访问失败问题求助
问题根因
Zebra EMDK核心系统服务默认仅在主用户(个人配置文件)下注册运行,Android工作配置文件的沙箱隔离机制会限制应用跨配置文件访问系统服务,因此调用EMDKManager.GetEMDKManager(Application.Context, this)时会返回FAILURE,同时扩展状态返回Failed to access dependent component.
修复方案
- 首先确认设备MX层版本≥10.1.1.0,Zebra从该版本开始正式支持工作配置文件下的EMDK服务访问,低于该版本的设备需先升级官方适配MC33的系统固件。
- 通过Zebra StageNow工具或企业MDM平台配置规则,将EMDK核心服务组件
com.symbol.emdk.emdkservice添加到工作配置文件的跨配置文件访问允许列表中,解除沙箱对该服务的访问限制。 - 在应用的
AndroidManifest.xml中添加适配配置:- 确保已声明EMDK访问权限:
<uses-permission android:name="com.symbol.emdk.permission.EMDK" />- 针对Android 11及以上版本的包可见性要求,新增queries声明:
<queries> <package android:name="com.symbol.emdk.emdkservice" /> </queries> - 若通过MDM部署应用,需在工作配置文件的应用部署规则中,为你的应用授予EMDK相关特殊权限,同时禁用对EMDK服务的工作配置文件隔离规则。
完成上述配置后重新安装启动应用,EMDK初始化即可正常返回成功状态,条码扫描功能可正常触发。
注意:该问题仅在应用运行于Android工作配置文件场景下出现
内容的提问来源于stack exchange,提问作者Boobalan Kothandaraman
相关产品推荐
相关产品推荐

