it-swarm.com.de

So prüfen Sie, ob NFC wird in Android aktiviert oder nicht?

Wie kann ich überprüfen, ob NFC programmgesteuert aktiviert ist oder nicht? Gibt es eine Möglichkeit, das NFC in meinem Programm auf dem Gerät zu aktivieren? Bitte hilf mir

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

Sie können NFC nicht programmgesteuert aktivieren. Der Benutzer muss dies manuell über die Einstellungen oder die Hardwaretaste tun.

54
Ronnie

Ich bin vielleicht etwas spät dran, aber ich habe ein "komplettes" Beispiel mit Erkennung von implementiert 

  1. NFC-Fähigkeit (Hardware) und 
  2. Anfangszustand NFC (aktiviert oder deaktiviert in den Einstellungen) und
  3. Wechselt zum Zustand

Ich habe auch ein entsprechendes Beam Beispiel hinzugefügt, das das verwendet 

nfcAdapter.isNdefPushEnabled()

in späteren Android-Versionen eingeführte Methode zur Erkennung des Strahlzustands wie in 2) und 3).

7
ThomasRS

Verwenden Sie PackageManager und hasSystemFeature("Android.hardware.nfc"), passend zu dem <uses-feature Android:name="Android.hardware.nfc" Android:required="false" />-Element, das Sie in Ihrem Manifest haben sollten. 

Seit 2.3.3 können Sie auch NfcAdapter.getDefaultAdapter() verwenden, um den Adapter abzurufen (falls verfügbar) und die isEnabled()-Methode aufzurufen, um zu prüfen, ob NFC derzeit aktiviert ist. 

7
Ahsan

Dies kann einfach mit folgendem Code erfolgen:

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
}

Denken Sie daran, dass der Benutzer NFC deaktivieren kann, auch wenn Sie Ihre App verwenden.

Quelle: https://developer.Android.com/guide/topics/connectivity/nfc/nfc#manifest

Obwohl Sie NFC nicht selbst programmieren können, können Sie den Benutzer bitten, es zu aktivieren, indem Sie eine Schaltfläche zum Öffnen von NFC -Einstellungen wie folgt verwenden:

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
Yahya Uddin