tiene - ¿Cómo comprobar si NFC está habilitado o no en Android?
nfc iphone (5)
Esto se puede hacer simplemente usando el siguiente código:
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
}
Recuerde que el usuario puede desactivar NFC, incluso mientras usa su aplicación.
Fuente: https://developer.android.com/guide/topics/connectivity/nfc/nfc#manifest
Aunque no puede habilitar NFC programáticamente, puede pedirle al usuario que lo habilite al tener un botón para abrir la configuración de NFC así:
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);
¿Cómo puedo verificar si NFC está habilitado o no programáticamente? ¿Hay alguna forma de habilitar la NFC en el dispositivo desde mi programa? por favor, ayúdame
Puede que llegue un poco tarde aquí, pero he implementado un example ''completo'' con detección de
- Capacidad NFC (hardware), y
- Estado NFC inicial (habilitado o deshabilitado en la configuración), y
- Cambios en el estado
También he añadido un example haz correspondiente que utiliza el
nfcAdapter.isNdefPushEnabled()
Método introducido en versiones posteriores de Android para detectar el estado del haz como en 2) y 3).
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 la NfcAdapter.getDefaultAdapter()
2.3.3 también puede usar NfcAdapter.getDefaultAdapter()
para obtener el adaptador (si está disponible) y llamar a su método isEnabled()
para verificar si NFC está actualmente activado.
NfcManager manager = (NfcManager) context.getSystemService(Context.NFC_SERVICE);
NfcAdapter adapter = manager.getDefaultAdapter();
if (adapter != null && adapter.isEnabled()) {
// adapter exists and is enabled.
}
No puede habilitar la NFC mediante programación. El usuario tiene que hacerlo manualmente a través de la configuración o el botón de hardware.
mNfcAdapter = NfcAdapter.getDefaultAdapter(this.getApplicationContext());
try {
if (mNfcAdapter != null) {
result = true;
}
}
Podemos verificar utilizando NfcAdapter con contexto.