2011-10-01 6 views

Répondre

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

Vous ne pouvez pas activer le NFC par programmation. L'utilisateur doit le faire manuellement via les paramètres ou le bouton matériel.

+0

donc si la valeur retournée est FAUX, cela signifie que l'appareil n'a pas la capacité NFC, est-ce vrai @ userSeven7s? – gumuruh

+0

Ce n'est pas correct. Si l'adaptateur est nul, le périphérique n'a pas de NFC. Explication sur le [Site Web du développeur] (http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#manifest) – Marko

7

Utilisez PackageManager et hasSystemFeature("android.hardware.nfc"), correspondant à l'élément <uses-feature android:name="android.hardware.nfc" android:required="false" /> que vous devriez avoir dans votre manifeste. Depuis 2.3.3, vous pouvez également utiliser NfcAdapter.getDefaultAdapter() pour obtenir l'adaptateur (si disponible) et appeler sa méthode isEnabled() pour vérifier si NFC est actuellement activé.

+0

le code s'il vous plaît @Ahsan – gumuruh

6

je pourrais être un peu en retard, mais je l'ai mis en place un « complet » example avec détection de

  1. capacité NFC (matériel), et
  2. état initial NFC (activé ou désactivé dans les paramètres), et
  3. les modifications apportées à l'état

J'ai aussi ajouté un faisceau correspondant example qui utilise le

nfcAdapter.isNdefPushEnabled() 

méthode introduite dans les versions ultérieures d'Android pour détecter l'état du faisceau comme dans 2) et 3).

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

Nous pouvons vérifier en utilisant NfcAdapter avec le contexte.

Questions connexes