2011-10-01 24 views

Respuesta

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

No se puede habilitar el NFC mediante programación. El usuario tiene que hacerlo manualmente a través de la configuración o el botón de hardware.

+0

así que si el valor devuelto es FALSO, significa que el dispositivo no tiene la capacidad NFC, ¿es cierto @ userSeven7s? – gumuruh

+0

Eso no es correcto. Si el adaptador es nulo, el dispositivo no tiene NFC. Explicación en [Sitio web del desarrollador] (http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#manifest) – Marko

7

Use PackageManager y hasSystemFeature("android.hardware.nfc"), haciendo coincidir el elemento <uses-feature android:name="android.hardware.nfc" android:required="false" /> que debe tener en su manifiesto.

Desde 2.3.3 también puede usar NfcAdapter.getDefaultAdapter() para obtener el adaptador (si está disponible) y llamar a su método isEnabled() para comprobar si NFC está actualmente encendido.

+0

el código por favor @Ahsan – gumuruh

6

que podría ser un poco tarde aquí, pero he implementado un 'completo' example con detección de

  1. capacidad de NFC (hardware) y
  2. estado inicial NFC (activado o desactivado en los ajustes), y
  3. los cambios en el estado

también he añadido un haz correspondiente example que utiliza el

nfcAdapter.isNdefPushEnabled() 

método introducido en versiones posteriores de Android para detectar el estado del haz como en 2) y 3).

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

Podemos verificar el uso de NfcAdapter con el contexto.

Cuestiones relacionadas