Está en la página 1de 2

Compatibilidad con NFC

No todos los dispositivos que funcionan con Android son compatibles con la tecnología NFC. Antes de
iniciar una comunicación NFC en una aplicación, es preciso verificar si la tecnología está disponible en
el dispositivo del usuario. A continuación, es necesario "informar" al dispositivo que la aplicación es
capaz de iniciar una comunicación NFC.

1. Usar con un emulador


Incluso aunque resulta indispensable realizar pruebas en condiciones reales, resulta práctico poder
utilizar, en las distintas fases del desarrollo, un emulador de Android.

Para desarrollar funcionalidades NFC, además del emulador Android clásico, el desarrollador debe
disponer de un mecanismo que le permita emular tarjetas/tags NFC. El proyecto Open NFC,
financiado por la empresa Inside Secure (www.insidesecure.com), provee, de manera gratuita, dicho
emulador.

Para hacer funcionar el emulador es preciso instalar tres elementos:

Una imagen de terminal Android.

La aplicación ConnectionCenter, que gestiona la conexión entre el emulador de tag y el


emulador Android.

La aplicación NFC Controller Simulation, que simula los tags NFC.

El proceso de instalación, así como el origen de los elementos que se deben descargar, están
disponibles en la siguiente dirección: http://open-nfc.org/wp/editions/android/

2. Detectar si el dispositivo es compatible con NFC


En primer lugar, la aplicación debe indicar que requiere la autorización NFC.

<uses-permission android:name="android.permission.NFC"/>

Este permiso está disponible desde la versión 9 (2.3, Gingerbread) de la API Android, las versiones
anteriores de Android no son compatibles con la tecnología NFC.

En función de las necesidades, se plantean dos escenarios: bien la aplicación se muestra como
disponible únicamente para aquellos dispositivos compatibles con NFC (técnica de filtrado por
dispositivo), o bien la compatibilidad con NFC se comprueba en el momento de uso de NFC (técnica
de comprobación en tiempo de ejecución).

a. Filtrado por dispositivo

Como hemos visto (capítulo Publicar una aplicación), Play Store de Google permite filtrar los
dispositivos en función de los recursos necesarios para la ejecución de una aplicación. Este filtrado,
bien sea para la tecnología NFC o para cualquier otra tecnología, se realiza a nivel del manifiesto
de la aplicación.

Para prohibir la instalación de una aplicación en dispositivos que no dispongan de la tecnología


NFC, basta con agregar la etiqueta <u ses-feature>correspondiente:

<uses-feature android:name="android.hardware.nfc"
android:required="true" />

b. Comprobación en tiempo de ejecución


Si el uso de la tecnología NFC no es esencial para el funcionamiento de la aplicación, sería una
lástima privar a una parte de parque de dispositivos de instalar la aplicación. En este caso, en
lugar de prohibir la instalación de la aplicación, el desarrollador puede gestionar el acceso a la
función NFC en la propia aplicación. Para ello, basta con comprobar si el dispositivo dispone de un
adaptador NFC, mediante la función g e tDefaultAdapter().

if(NfcAdapter. getDefaultAdapter(getApplicationContext())==null)
Log.d(TAG,"Su dispositivo no dispone de la tecnología NFC");
else
Log.d(TAG,"Enhorabuena, puede utilizar los tags NFC");

c. Activación por el usuario

Aunque el dispositivo del usuario sea compatible con NFC, es posible que esté deshabilitado en el
dispositivo. El objeto NfcAdapter permite detectar el estado del adaptador NFC, mediante el
método i sEnabled(). Este método devuelve truesi el adaptador está habilitado, o falseen
caso contrario. A continuación resulta sencillo solicitar al usuario que active, él mismo, la función,
iniciando una actividad con la acción Settings.ACTION_NFC_SETTINGS.

NfcAdapter nfcAdapter= NfcAdapter.getDefaultAdapter(getApplicationContext());

if(nfcAdapter ==null)
return;

if(!nfcAdapter.isEnabled())
startActivity(new Intent(Settings.ACTION_NFC_SETTINGS));

También podría gustarte