需要在 Android 中伪造正在扫描的 NFC 标签

问题描述 投票:0回答:2

好的,我有一个应用程序。此应用程序仅在扫描 NFC 标签(任何标签)时才会完成任务。唯一的问题是,我没有任何 nfc 标签。无论如何,我正试图消除对卡的需要,所以我需要的是一种“伪造/使其看起来”就像已扫描 nfc 标签的方法。我可以编写应用程序等,所以我真正需要的只是让 android 认为标签已被扫描的核心代码。剩下的我可以做。我只需要能够按下一个按钮,然后 android 认为标签已被扫描,以便应用程序将被调用。谢谢你们

android android-intent nfc
2个回答
1
投票

编写一个应用程序,在启动时广播您想要模拟的 NFC 意图,然后关闭。因此,一个具有单个 Activity 的简单应用程序在其 onCreate 中大致执行此操作:

       Intent intent = new Intent("android.nfc.action.NDEF_DISCOVERED");
       startActivity(intent);
       finish();

然后您的应用程序应该自愿处理它,就好像它已被 NFC 读取器读取一样。

最后托马斯是对的,你应该购买一个 NFC 标签并使用它,这样你就知道它正在做你想要的普通 NFC 标签的事情。

如果这还不能让您满意,另一种选择是添加一个长时间运行的通知,单击该通知后,它就会进行意图广播。这样您就不必返回主菜单即可使其正常工作。


0
投票

@LeoFarage 评论中最简单的方法是从 ADB 进行操作:

am start -a android.nfc.action.NDEF_DISCOVERED -d "[TEST]" -t text/plain -c android.intent.category.DEFAULT

这与以下清单定义匹配:

        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
© www.soinside.com 2019 - 2024. All rights reserved.