You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI Android应用中如何接收条码扫描的系统广播

在.NET MAUI Android中通过系统广播捕获扫描条码的实现方法

1. 编写Android平台专属的广播接收器

条码扫描的系统广播是Android平台特定功能,需在MAUI的Android项目中创建广播接收器类:

[BroadcastReceiver(Enabled = true, Exported = true)]
// 替换为你的扫描设备实际发送的广播Action,需参考设备厂商文档
[IntentFilter(new[] { "com.yourscanner.barcode.SCAN_RESULT" })]
public class BarcodeScanReceiver : BroadcastReceiver
{
    public override void OnReceive(Context context, Intent intent)
    {
        if (string.Equals(intent.Action, "com.yourscanner.barcode.SCAN_RESULT"))
        {
            // 从Intent中提取条码数据,键名需匹配扫描器的输出定义
            string barcodeContent = intent.GetStringExtra("barcode_content");
            string barcodeType = intent.GetStringExtra("barcode_type");

            // 通过消息传递将数据同步到MAUI共享代码层
            WeakReferenceMessenger.Default.Send(new BarcodeScannedMsg(barcodeContent, barcodeType));
        }
    }
}

2. 在共享代码层定义消息载体

使用WeakReferenceMessenger(替代已过时的MessagingCenter)实现跨层数据传递,定义消息类:

public class BarcodeScannedMsg
{
    public string Content { get; }
    public string Type { get; }

    public BarcodeScannedMsg(string content, string type)
    {
        Content = content;
        Type = type;
    }
}

3. 在MAUI页面中订阅并处理条码数据

在需要接收条码的页面中,订阅消息并更新UI(注意切换到UI线程):

public MainPage()
{
    InitializeComponent();
    // 订阅条码扫描消息
    WeakReferenceMessenger.Default.Register<BarcodeScannedMsg>(this, (_, msg) =>
    {
        Dispatcher.Dispatch(() =>
        {
            // 更新UI控件,比如显示条码内容
            txtBarcode.Text = $"扫描结果:{msg.Content}(格式:{msg.Type})";
        });
    });
}

4. 配置Android权限与Manifest

根据扫描设备的要求,在Android项目的AndroidManifest.xml中添加必要权限或配置:

<!-- 示例:添加扫描广播接收权限,需替换为厂商指定的权限名 -->
<uses-permission android:name="com.yourscanner.permission.RECEIVE_SCAN" />

关键注意事项

  • 广播参数匹配:不同品牌的扫描设备发送的广播Action、Extra键名可能不同,必须参考设备厂商的开发文档确认
  • Android 12+ 适配:针对Android 12及以上版本,隐式广播存在限制,需确保扫描设备发送的是显式广播,或在Manifest中添加对应的<queries>配置
  • 线程安全:更新UI必须通过Dispatcher.Dispatch切换到UI线程,避免跨线程操作异常

内容的提问来源于stack exchange,提问作者junwen liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:15:39