使用 Zebra MX 扩展 AppManager 时出错
Error using Zebra MX extensions AppManager
我正在尝试在带有 EMDK 包的 Xamarin 上使用 Zebra Mx 扩展应用程序管理器。
我的设备是 Android 7.1
的 Zebra 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);
结果是:
The processing of profile started, the result will be returned through the data listener callback registered
但从未调用数据侦听器。
如果我使用同步方法ProcessProfile()
,应用程序会无限期地卡在线上。
当我查看 logcat 设备上发生的情况时,弹出此错误:
AppList_AllowedSubmitXml
ERROR: Unable to load static file
错误的原因是什么?
如何找到与此错误相关的更多信息?
我在 Google 搜索引擎上搜索了 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. That sample can enable / disable the WiFi amongst other tasks and you can modify the project XML to suit your needs using the EMDK for Xamarin Visual Studio extension (https://marketplace.visualstudio.com/items?itemName=EmdkForXamarin.EMDKforXamarin-19166) 复制 WiFi 示例可能最简单。 VS 扩展为您提供了一个可视化编辑器,我不建议尝试直接修改 XML。
我注意到 WiFiSample 总是在处理之前修改代码中的 XML,但这不是必需的 - 在发送之前不修改 xml 的应用示例是 https://github.com/darryncampbell/DevTalk-Securing-Your-Zebra-Device/blob/master/SecurityManagers/SecurityManagers/MainActivity.cs#L293
更新(见评论):以下代码将安装指定的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);
我正在尝试在带有 EMDK 包的 Xamarin 上使用 Zebra Mx 扩展应用程序管理器。 我的设备是 Android 7.1
的 Zebra 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);
结果是:
The processing of profile started, the result will be returned through the data listener callback registered
但从未调用数据侦听器。
如果我使用同步方法ProcessProfile()
,应用程序会无限期地卡在线上。
当我查看 logcat 设备上发生的情况时,弹出此错误:
AppList_AllowedSubmitXml ERROR: Unable to load static file
错误的原因是什么?
如何找到与此错误相关的更多信息?
我在 Google 搜索引擎上搜索了 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. That sample can enable / disable the WiFi amongst other tasks and you can modify the project XML to suit your needs using the EMDK for Xamarin Visual Studio extension (https://marketplace.visualstudio.com/items?itemName=EmdkForXamarin.EMDKforXamarin-19166) 复制 WiFi 示例可能最简单。 VS 扩展为您提供了一个可视化编辑器,我不建议尝试直接修改 XML。
我注意到 WiFiSample 总是在处理之前修改代码中的 XML,但这不是必需的 - 在发送之前不修改 xml 的应用示例是 https://github.com/darryncampbell/DevTalk-Securing-Your-Zebra-Device/blob/master/SecurityManagers/SecurityManagers/MainActivity.cs#L293
更新(见评论):以下代码将安装指定的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);