Comment vérifier si NFC est activé ou non sur android?

Comment puis-je vérifier si NFC est activé ou non par programmation? Y a-t-il un moyen d'activer le NFC sur le périphérique de mon programme? S'il vous plaît aidez-moi

24
demandé sur THelper 2011-10-01 10:42:09

5 réponses

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 de manière programmatique. L'utilisateur a le faire manuellement via les paramètres ou bouton matériel.

50
répondu Ronnie 2011-10-01 06:59:44

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é.

7
répondu Ahsan 2015-07-14 11:47:24

je suis peut-être un peu en retard ici, mais j'ai mis en place un "complet" "exemple avec détection de

  1. NFC (matériel), et de
  2. état initial NFC (activé ou désactivé dans les paramètres), et
  3. les Changements de l'état

j'ai aussi ajouté un faisceau correspondant exemple qui utilise le

nfcAdapter.isNdefPushEnabled()

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

6
répondu ThomasRS 2018-09-20 13:31:46
mNfcAdapter = NfcAdapter.getDefaultAdapter(this.getApplicationContext());
    try {
        if (mNfcAdapter != null) {
            result = true;
        }
    }

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

0
répondu Ranjith Subramaniam 2014-04-24 11:51:39

cela peut être fait simplement en utilisant le code suivant:

NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(this);

if (nfcAdapter == null) {
    // NFC is not available for device
} else if (!nfcAdapter.isEnabled()) {
    // NFC is available for device but not enabled
} else {
    // NFC is enabled
}

rappelez-vous que l'utilisateur peut désactiver NFC, même en utilisant votre application.

Source: https://developer.android.com/guide/topics/connectivity/nfc/nfc#manifest

bien que vous ne puissiez pas programmer NFC vous-même, vous pouvez demander à l'utilisateur de l'activer en ayant un bouton pour ouvrir les paramètres NFC comme ceci:

Intent intent
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    intent = new Intent(Settings.ACTION_NFC_SETTINGS);
} else {
    Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
}

startActivity(intent);
0
répondu Yahya Uddin 2018-09-18 06:08:25