2011-10-01 65 views

回答

49
NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE); 
NfcAdapter adapter = manager.getDefaultAdapter(); 
if (adapter != null && adapter.isEnabled()) { 
    // adapter exists and is enabled. 
} 

您無法以編程方式啓用NFC。用戶必須通過設置或硬件按鈕手動執行此操作。

+0

所以如果返回的值是FALSE,這意味着該設備不具備NFC功能,是真@ userSeven7s? – gumuruh

+0

這是不正確的。如果適配器爲空,則設備沒有NFC。 [開發者網站]上的說明(http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#manifest) – Marko

7

使用PackageManagerhasSystemFeature("android.hardware.nfc"),匹配您應該在清單中使用的<uses-feature android:name="android.hardware.nfc" android:required="false" />元素。

從2.3.3開始,您還可以使用NfcAdapter.getDefaultAdapter()獲取適配器(如果可用)並調用其isEnabled()方法來檢查NFC是否當前打開。

+0

代碼請@Ahsan – gumuruh

6

我可能有點晚了這裏,但我已經實現了一個「完整的」 example與檢測

  1. NFC功能(硬件),並
  2. NFC初始狀態(啓用或禁用設置),以及
  3. 改變爲狀態

我還添加一個對應的梁example它使用

nfcAdapter.isNdefPushEnabled() 

方法在後來的Android版本中引入以檢測2)和3)中的波束狀態。

0
mNfcAdapter = NfcAdapter.getDefaultAdapter(this.getApplicationContext()); 
    try { 
     if (mNfcAdapter != null) { 
      result = true; 
     } 
    } 

我們可以使用帶有上下文的NfcAdapter進行驗證。

相關問題