2011-10-08 27 views
0

我有一些文件不具有任何直觀的例子,我基本的Java,如何聲明這些Android功能

http://developer.android.com/reference/android/nfc/tech/NfcV.html

http://developer.android.com/reference/android/nfc/Tag.html

我需要聲明NfcV類型和對象鍵入Tag,但是當我嘗試執行類似於NfcV myNFCObject = new NfcV();這樣的IDE時,說「構造函數NfcV不可見,因此我的下一個嘗試看起來像這樣NfcV myNFCObject = NfcV.getTag(new Tag());,並且出現錯誤」構造函數Tag()「不可見。

因此,我碰壁時,只是從兩個文檔鏈接看,我不明白如何聲明這些對象!這將如何完成?

謝謝!

回答

2

首先您必須創建一個實現TagTechnology接口的類。然後你可以得到它的標籤。

import java.io.IOException; 

import android.nfc.Tag; 

public class sampleTagTech implements android.nfc.tech.TagTechnology { 

public void close() throws IOException { 
    // TODO Auto-generated method stub 

} 

public void connect() throws IOException { 
    // TODO Auto-generated method stub 

} 

public Tag getTag() { 
    // TODO Auto-generated method stub 
    return null; 
} 

public boolean isConnected() { 
    // TODO Auto-generated method stub 
    return false; 
} 

} 

,那麼你可以使用這樣

NfcV nfcv = NfcV.get(new sampleTag().getTag()); 
+0

謝謝!我複製這個,但現在我得到一個空指針異常NfcV nfcv = NfcV.get(new sampleTag()。getTag());',這可能是因爲getTag()返回null,但我不知道如何處理這個,也許只有在發現標籤時才調用這個函數? – CQM

0

根據文檔,你可以這樣做:

NfcV object = NfcV.get(myTag) 

還沒有public構造函數myTag(這就是爲什麼你會得到一個錯誤說是不可見的這既可以是privateprotected)每您提供的文檔:

當發現標記時,會通過startActivity(Intent)通過Intent中的EXTRA_TAG額外創建Tag對象並將其傳遞給單個活動。

+0

myTag不能被解析爲一個變量。我如何聲明一個Tag對象 – CQM

+0

我所能做的就是'Tag myTag = null; NfcV.get(myTag);'但是這是一個空對象:(所以我有點擔心異常在這裏 – CQM

0

當你將具備NFC功能的Android設備附近的兼容ISO15693標籤,意圖將通過Android系統的創建。這個意圖將包含標籤的句柄。當你的應用程序收到意圖時,它可以從那裏檢索它。請參閱http://developer.android.com/guide/topics/nfc/nfc.html#filtering-intents瞭解如何在您的應用中接收NFC意圖。

在接收NFC意圖的活動,您可以訪問NfcV這樣的:

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); 
NfcV nfcV = NfcV.get(tag); 
if (nfcV != null) { 
    ... 
}