Documentación para com.android.nfc_extras?
Aparentemente, si tiene un teléfono con raíz, puede utilizar com.android.nfc_extras
para obtener acceso a funciones como la emulación de tarjetas ( Secure element Access Control en ICS 4.0.4 ).
Sé que se trata de una API no oficial, pero ¿hay alguna documentación para ello (oficial o no oficial)? ¿O por otra parte, la emulación de tarjetas es mucho más complicada de lo que me he dado cuenta?
- Mifare Ultralight: bloquea páginas específicas
- Android NFC transceive () con tecnología NFCF (Sony Felica)
- Touch to Beam, la única forma de enviar NFC (ICS)?
- NFC NdefFormatable class connect () lanza IOException
- Cómo implementar las funciones RFID en nuestra aplicación Android
- ¿Por qué Android HCE no admite Mifare Classic?
- Lectura de un mensaje NDEF desde una etiqueta NFC desde una aplicación de Android
- Lectura de una etiqueta emulada en el teléfono Android con CPR Lector 40.30-USB: "Tipo de Transpondedor Incorrecto"
- Enviar URL a través de NFC para ser abierto por el navegador
- Android: Leyendo la etiqueta NFC en la clase de servicio
- Cómo obtener el ID de hardware de NFC en Android
- ¿Cuál es la diferencia entre enableReaderMode y enableForegroundDispatch?
- Leer los detalles de la tarjeta de crédito de Visa PayWave vía NFC en Android
Tenga en cuenta que el acceso al elemento seguro y la emulación de tarjetas son en realidad dos cosas diferentes. El elemento seguro está esencialmente cerrado; No puede modificarlo. Usando com.android.nfc_extras
puede activar o desactivar la emulación de la tarjeta mediante el elemento seguro. Eso es.
Puede enviar APDUs al elemento seguro desde su aplicación, como comunicarse con una etiqueta IsoDep
(en la parte de nivel inferior de la pila NFC, ambas utilizan la misma ruta de código). Ver por ejemplo http://nelenkov.blogspot.nl/2012/08/accessing-embedded-secure-element-in.html para una buena explicación de cómo hacerlo.
No hay documentación. Si desea explorar esta API le sugiero que mire directamente el código fuente. No es mucho, sólo dos archivos que implementan y definen la API. Puede obtener una copia por ejemplo aquí:
http://source-android.frandroid.com/frameworks/base/nfc-extras/java/com/android/nfc_extras/
En la API encontrarás conceptos como ExecutionEnvironment, Routes, etc. No dejes que estos conceptos te confundan. Al final, todo lo que puedes hacer con la interfaz NfcExtras es:
-
Active la emulación de tarjetas estableciendo una ruta creada con ROUTE_ON_WHEN_SCREEN_ON.
-
Desactive la emulación de la tarjeta configurando la ruta de apagado.
-
Intercambiar datos con el elemento seguro incorporado.
¡Eso es! Todo lo demás es sólo azúcar API para hacer que las cosas se vean más grandes de lo que realmente es.
Algunas advertencias adicionales:
-
Si desea llamar a las funciones que necesita su aplicación para ser de lista blanca en el archivo nfcee_access.xml se encuentra en / etc. Si no se incluye una lista blanca, obtendrá una excepción de violación de acceso.
-
No hay forma de distinguir entre el elemento seguro incorporado o el UICC con capacidad NFC presente en el teléfono.
-
No hay manera de hablar con el UICC con capacidad NFC en el teléfono. Sólo puede hablar con el elemento seguro incorporado (también conocido como el chip SmartMX para teléfonos con chipset NXP). La comunicación con la propia UICC sólo es posible a través de la interfaz RID a través de la interfaz ISO7816, y esto es, si es posible, propiedad.
-
Por último, pero no menos importante: No hay ninguna garantía de que la interfaz NfcExtras hace nada en absoluto. La interfaz es utilizada por Google Wallet, pero el mercado de pagos móviles está segmentado y todos cocinan su propia sopa. Conozco al menos un gran proveedor de pagos móviles que ignora por completo la interfaz NfcExtras, la deshabilita y utiliza su propio mecanismo oculto para activar y desactivar las cosas.
- ¿Cómo construir una aplicación de Android que avisa al usuario, incluso si es asesinado?
- Leer datos de sqlite donde nombre de columna contiene espacios en android