如何测试ACTION_TAG_DISCOVERED?

时间:2012-08-29 20:13:35

标签: android android-intent junit nfc

我有Android活动,当与NFC标签联系时会调用某个功能。我想为此创建测试。

在我的测试文件中,我的逻辑如下:

// Create a ACTION_TAG_DISCOVERED
// Respond to ACTION_TAG_DISCOVERED
public void testNfc(){

}

在我的代码中,我有一个回调函数“onNewIntent”,它会查看在NFC标签附近创建的意图:

protected void onNewIntent(Intent intent) {
    if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { ... }

但是,在我的测试代码中,我无法创建ACTION_TAG_DISCOVERED的Intent。我查看了课程here

如何创建ACTION_TAG_DISCOVERED意图以便我可以测试它?沿着这条线的某个地方:

Intent nfcIntent = new Intent(Intent.ACTION_TAG_DISCOVERED)
if(nfcIntent == ACTION_TAG_DISCOVERED)
assertSomeMethod("functionWhichHandlesNFCTagDiscovered")

非常感谢!

2 个答案:

答案 0 :(得分:1)

尝试使用此:ACTION_TAG_DISCOVERED

我没有测试过它,但是如果你像这样制作一个Intent:

Intent intent = new Intent(NfcAdapter.ACTION_TAG_DISCOVERED);
intent.putExtra(NfcAdapter.EXTRA_TAG, "");
...
intent.putByteArrayExtra(NfcAdapter.EXTRA_ID);
//etc.

你可以做你所描述的事情。

答案 1 :(得分:0)

您需要扫描物理设备上的标签 - 据我所知,模拟器不支持NFC。