首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Zebra扩展AppManager时出错

使用Zebra扩展AppManager时出错
EN

Stack Overflow用户
提问于 2020-01-09 09:44:04
回答 1查看 536关注 0票数 0

我试图在Xamarin上使用Zebra扩展应用程序管理器和EMDK包。我的设备是带有Android7.1的斑马TC51

当我调用这个函数时:

代码语言:javascript
复制
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

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-10 08:14:46

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

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

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

Update (参见注释):下面的代码将安装指定的apk:

代码语言:javascript
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59661118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档