Jak mogę sprawdzić, czy funkcja NFC jest włączona, czy nie programowo? Czy jest jakiś sposób, aby włączyć NFC na urządzeniu z mojego programu? Pomóż miJak sprawdzić, czy funkcja NFC jest włączona w Androidzie?
Odpowiedz
NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE);
NfcAdapter adapter = manager.getDefaultAdapter();
if (adapter != null && adapter.isEnabled()) {
// adapter exists and is enabled.
}
Nie można włączyć NFC programowo. Użytkownik musi to zrobić ręcznie za pomocą ustawień lub przycisku sprzętowego.
Użyj PackageManager
i hasSystemFeature("android.hardware.nfc")
, dopasowując element <uses-feature android:name="android.hardware.nfc" android:required="false" />
, który powinieneś mieć w swoim manifeście.
Od wersji 2.3.3 można również użyć NfcAdapter.getDefaultAdapter()
, aby uzyskać adapter (jeśli jest dostępny) i wywołać jego metodę isEnabled()
, aby sprawdzić, czy funkcja NFC jest aktualnie włączona.
kod, proszę @Ahsan – gumuruh
mogę być trochę późno tutaj, ale zostały wdrożone 'kompletna' example z detekcją
- NFC możliwości (hardware) i
- stanu początkowego NFC (włączone lub wyłączone w ustawieniach) i
- Zmiany stanu
Dodałem również odpowiedni Beam example który wykorzystuje
nfcAdapter.isNdefPushEnabled()
metoda wprowadzona w późniejszych wersjach systemu Android do wykrywania stanu wiązki jak w 2) i 3).
mNfcAdapter = NfcAdapter.getDefaultAdapter(this.getApplicationContext());
try {
if (mNfcAdapter != null) {
result = true;
}
}
Możemy zweryfikować za pomocą NfcAdapter z kontekstem.
, więc jeśli zwrócona wartość jest FAŁSZ, oznacza to, że urządzenie nie ma możliwości NFC, czy to prawda @ userSeven7s? – gumuruh
To nie jest poprawne. Jeśli adapter ma wartość NULL, urządzenie nie ma funkcji NFC. Wyjaśnienie na [Witryna programisty] (http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#manifest) – Marko