好的,我有一个应用程序。此应用程序仅在扫描 NFC 标签(任何标签)时才会完成任务。唯一的问题是,我没有任何 nfc 标签。无论如何,我正试图消除对卡的需要,所以我需要的是一种“伪造/使其看起来”就像已扫描 nfc 标签的方法。我可以编写应用程序等,所以我真正需要的只是让 android 认为标签已被扫描的核心代码。剩下的我可以做。我只需要能够按下一个按钮,然后 android 认为标签已被扫描,以便应用程序将被调用。谢谢你们
编写一个应用程序,在启动时广播您想要模拟的 NFC 意图,然后关闭。因此,一个具有单个 Activity 的简单应用程序在其 onCreate 中大致执行此操作:
Intent intent = new Intent("android.nfc.action.NDEF_DISCOVERED");
startActivity(intent);
finish();
然后您的应用程序应该自愿处理它,就好像它已被 NFC 读取器读取一样。
最后托马斯是对的,你应该购买一个 NFC 标签并使用它,这样你就知道它正在做你想要的普通 NFC 标签的事情。
如果这还不能让您满意,另一种选择是添加一个长时间运行的通知,单击该通知后,它就会进行意图广播。这样您就不必返回主菜单即可使其正常工作。
@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>