2012-02-24 41 views
1

我一直在试图找到一种方法来实例化标签对象。我试图做到这一点,以便我可以模拟各种类型的标签。如何在android中创建标签对象?

有谁知道如何使用

Tag tag = ????? 
UltraLight obj = UltraLight.get(tag); 

谢谢

回答

2

的集成电路芯片的源代码中的NFC应用例子让超轻对象的实例,我们可以找到一些代码,如:

Bundle extras = new Bundle(); 
extras.putParcelable(Ndef.EXTRA_NDEF_MSG, ndefMsg); 
extras.putInt(Ndef.EXTRA_NDEF_MAXLENGTH, 0); 
extras.putInt(Ndef.EXTRA_NDEF_CARDSTATE, Ndef.NDEF_MODE_READ_ONLY); 
extras.putInt(Ndef.EXTRA_NDEF_TYPE, Ndef.TYPE_OTHER); 
Tag tag = Tag.createMockTag(new byte[] { 0x00 }, 
    new int[] { TagTechnology.NDEF }, 
    new Bundle[] { extras }); 

createMockTag方法的代码如下:

public static Tag createMockTag(byte[] id, int[] techList, Bundle[] techListExtras) { 
    // set serviceHandle to 0 to indicate mock tag 
    return new Tag(id, techList, techListExtras, 0, null); 
} 

也许这可能有帮助。

+0

谢谢,我会试试看,从头脑里看,我不明白它是如何工作的,因为没有类似于Tag类的构造函数吗? – gaara87 2012-02-25 10:27:16

+0

我检查了源代码。该函数不能被调用! :/ – gaara87 2012-02-27 06:37:45

+0

你说得对。也许还有一个想法:当使用Tag类时,我们可以使用其名为[CREATOR]的常量(http://developer.android.com/reference/android/nfc/Tag.html#CREATOR)。这个返回一个对象[Creator ](http://developer.android.com/reference/android/os/Parcelable.Creator.html)。这样的对象有一个方法[createFromParcel(Parcel)](http://developer.android.com/reference/android/os/Parcelable.Creator.html#createFromParcel%28android.os.Parcel%29)可以帮助。 – 2012-02-27 08:19:18