如何使用.NET MAUI列出Zebra设备配置文件?
.NET MAUI获取Zebra设备DataWedge配置列表的正确实现
问题分析
你的代码无法获取配置列表的核心原因:
- 错误构造并发送了无效的Intent,没有正确触发DataWedge返回配置列表的逻辑
- 试图在发送的Intent中直接读取返回结果,但DataWedge是通过独立广播返回数据的,不会在原Intent中携带结果
正确实现步骤
1. 注册广播接收器接收返回结果
在MAUI项目的Platforms/Android目录下创建广播接收器类,用于监听DataWedge返回的配置列表:
using Android.Content; using Android.Runtime; namespace YourAppNamespace.Platforms.Android; [BroadcastReceiver(Enabled = true, Exported = true)] [IntentFilter(new[] { "com.symbol.datawedge.api.RESULT_ACTION" })] public class DataWedgeProfileReceiver : BroadcastReceiver { public override void OnReceive(Context? context, Intent? intent) { if (intent == null || !intent.HasExtra("com.symbol.datawedge.api.RESULT_GET_PROFILES_LIST")) return; // 获取配置列表 var profileList = intent.GetStringArrayListExtra("com.symbol.datawedge.api.RESULT_GET_PROFILES_LIST"); if (profileList != null) { foreach (var profile in profileList) { Console.WriteLine($"配置文件名称:{profile}"); // 可在此处将结果传递给MAUI共享代码层 } } } }
2. 修正触发获取配置列表的方法
修改你的zebraprofile_list方法,正确调用DataWedge API:
public void zebraprofile_list() { const string ACTION_DATAWEDGE = "com.symbol.datawedge.api.ACTION"; const string EXTRA_GET_PROFILES = "com.symbol.datawedge.api.GET_PROFILES"; var dwIntent = new global::Android.Content.Intent(ACTION_DATAWEDGE); dwIntent.PutExtra(EXTRA_GET_PROFILES, true); // 传入true触发配置列表查询 _context.SendBroadcast(dwIntent); }
3. 必要配置
- 权限声明:在
Platforms/Android/AndroidManifest.xml中添加DataWedge访问权限:<uses-permission android:name="com.symbol.datawedge.api.permission.ACCESS" /> - DataWedge版本要求:确保设备上的DataWedge版本为6.2及以上,该版本开始支持
GET_PROFILESAPI
内容的提问来源于stack exchange,提问作者Fernando Goncalves
相关产品推荐
相关产品推荐

