使用 Zebra MX 扩展程序 AppManager 时出错



我正在尝试将 Zebra Mx 扩展应用程序管理器与 EMDK 软件包一起使用 Xamarin。 我的设备是配备安卓 7.1 的斑马技术 TC51

当我调用函数时:

string[] modifyData = new string[2];
modifyData[0] = ProfileManager.CreateNameValuePair("AppMgrInstall", "Action", "Install");
modifyData[1] = ProfileManager.CreateNameValuePair("AppMgrInstall", "APK", "/storage/emulated/0/Android/data/mypackage/files/apks/install.apk");
EMDKResults results = arg.ProcessProfileAsync("AppMgrProfile", ProfileManager.PROFILE_FLAG.Set, modifyData);

结果是 :

配置文件的处理开始,结果将通过数据监听器回调注册

返回

但永远不会调用数据侦听器。

如果我使用同步方法ProcessProfile(),应用程序会无限期地卡在线上。

当我在logcat中查看设备上发生的情况时,弹出此错误:

AppList_AllowedSubmitXml 错误:无法加载静态文件

错误的原因可能是什么?

如何找到与此错误相关的更多信息?

我在谷歌搜索引擎上搜索了AppList_AllowedSubmitXml,但它返回了 0 个结果。

编辑: 这是我的EMDKConfig.xml

<?xml version="1.0" encoding="UTF-8"?><!--This is an auto generated document. Changes to this document may cause incorrect behavior.-->
<wap-provisioningdoc>
<characteristic type="ProfileInfo">
<parm name="created_wizard_version" value="7.3.2"/>
</characteristic>
<characteristic type="Profile">
<parm name="ProfileName" value="AppMgrProfile"/>
<parm name="ModifiedDate" value="2020-01-09 09:19:51"/>
<parm name="TargetSystemVersion" value="8.0"/>
<characteristic type="AppMgr" version="8.0">
<parm name="emdk_name" value="AppMgrInstall"/>
<parm name="Action" value="Install"/>
<parm name="APK" value="/storage/emulated/0/Android/data/mypackage/files/apks/install.apk"/>
</characteristic>
</characteristic>
</wap-provisioningdoc>

你不能以这种方式使用 ProcessProfile API,你的项目需要有一个对应的 EMDKConfig.xml 文件,如果需要,modifyData(( 只能用于在提交之前修改该文件的内容。

从 https://github.com/Zebra/samples-emdkforxamarin-4_0/tree/samples-emdkforxamarin-5_0/ProfileWifiSample1 复制WiFi样本可能是最简单的方法。 该示例可以在其他任务中启用/禁用WiFi,并且您可以使用EMDK for Xamarin Visual Studio扩展(https://marketplace.visualstudio.com/items?itemName=EmdkForXamarin.EMDKforXamarin-19166(修改项目XML以满足您的需求。 VS扩展为您提供了一个可视化编辑器,我不建议尝试直接修改XML。

我注意到 WiFiSample 总是在处理之前修改代码中的 XML,但这不是必需的 - https://github.com/darryncampbell/DevTalk-Securing-Your-Zebra-Device/blob/master/SecurityManagers/SecurityManagers/MainActivity.cs#L293 发送前不修改 xml 的应用程序示例

更新(见评论(:以下代码将安装指定的apk:

string[] modifyData = new string[1];
modifyData[0] = "<? xml version ="1.0" encoding="utf-8"?>";
modifyData[0] +=  "<characteristic type = "Profile" >";  
modifyData[0] +=   "<parm name = "ProfileName" value = "AppMgrProfile" />";
modifyData[0] +=   "<parm name = "ModifiedDate" value = "2020-01-10 13:14:07" />";
modifyData[0] +=   "<parm name = "TargetSystemVersion" value = "7.0" />";
modifyData[0] +=   "<characteristic type = "AppMgr" version = "7.0" >";
modifyData[0] +=     "<parm name = "emdk_name" value = "AppMgr" />";
modifyData[0] +=     "<parm name = "Action" value = "Install" />";
modifyData[0] +=     "<parm name = "APK" value = "/storage/emulated/0/install.apk" />";
modifyData[0] +=   "</characteristic>";
modifyData[0] += "</characteristic>";
EMDKResults results = arg.ProcessProfileAsync("AppMgrProfile", ProfileManager.PROFILE_FLAG.Set, modifyData);

相关内容

  • 没有找到相关文章

最新更新