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

寻求可在Android端实现NFC读取与卡仿真的C#开发包

C# 实现NFC读取+卡仿真(仅UID无加密RFID卡场景)方案

适配前提

当前C#开发移动端应用主要依托MAUI/Xamarin技术栈,NFC卡仿真能力依赖操作系统原生API支持,无全平台通用的第三方封装包,仅安卓系统支持普通开发者调用主机卡仿真(HCE)能力实现卡模拟,iOS系统仅对苹果钱包等官方应用开放卡仿真权限,普通开发者无法调用,以下方案仅适用于安卓端开发。


1. NFC读取功能实现

无需自行封装原生能力,直接使用成熟的NuGet包Plugin.NFC即可实现无加密RFID卡的UID读取,适配你的需求场景:

  • 先在安卓项目Manifest中添加NFC、NFC_OPERATOR权限
  • 核心读卡代码示例:
if (CrossNFC.IsSupported && CrossNFC.Current.IsAvailable)
{
    CrossNFC.Current.OnTagDiscovered += (tag) =>
    {
        // 读取卡UID并转为字符串存储
        var uidBytes = tag.Identifier;
        var targetUid = BitConverter.ToString(uidBytes).Replace("-", "").ToUpper();
    };
    // 启动NFC监听
    await CrossNFC.Current.StartListening();
}

2. NFC卡仿真功能实现

没有现成的通用C#封装包属于正常情况,卡仿真直接调用安卓原生HCE API即可实现,无需引入第三方组件,不存在隐私泄露风险:

  1. 先在安卓项目的Resources/xml目录下新建hce_service.xml配置文件,配置ISO 14443 Type A类型卡的AID过滤规则,适配普通门禁读卡器的识别逻辑
  2. 新建HCE服务类,重写指令响应方法,返回你提前读取到的门禁卡UID即可,核心代码示例:
[Service(Exported = true, Permission = "android.permission.BIND_NFC_SERVICE")]
[IntentFilter(new[] { "android.nfc.cardemulation.action.HOST_APDU_SERVICE" }, Categories = new[] { "android.intent.category.DEFAULT" })]
[MetaData("android.nfc.cardemulation.host_apdu_service", Resource = "@xml/hce_service")]
public class CardEmulationService : HostApduService
{
    // 替换为你自己读取到的门禁卡UID字节数组
    private readonly byte[] _simulatedCardUid = new byte[] { 0x1A, 0x2B, 0x3C, 0x4D };
    // 读卡器指令响应成功标识
    private readonly byte[] _successFlag = new byte[] { 0x90, 0x00 };

    public override byte[] ProcessCommandApdu(byte[] commandApdu, Bundle extras)
    {
        // 匹配读卡器读UID的标准指令
        if (commandApdu.SequenceEqual(new byte[] { 0xFF, 0xCA, 0x00, 0x00, 0x00 }))
        {
            return _simulatedCardUid.Concat(_successFlag).ToArray();
        }
        return _successFlag;
    }

    public override void OnDeactivated(int reason)
    {
        // 按需添加服务停用后的处理逻辑
    }
}

注意事项

  • 部分安卓厂商对后台NFC服务做了限制,需要手动给应用开启「NFC后台运行权限」「自启动权限」,避免锁屏时卡仿真失效
  • 本方案仅适配仅校验UID的无加密门禁卡,若门禁存在扇区加密校验逻辑则无法正常使用,完全匹配你的需求场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:18:03