Cómo enviar una cadena utilizando NFC desde un teléfono Windows 8 a un dispositivo Android

No he tenido ninguna suerte con google para esto, así que pensé que iba a pedir.

¿Alguien tiene alguna experiencia / saber cómo enviar una cadena simple, es decir, "hola" desde un dispositivo Windows Phone 8 a un dispositivo Android?

Hasta ahora hemos sido capaces de hacer Android -> Android y Android -> Windows Phone 8, pero no hemos sido capaces de saber cómo hacer desde Windows Phone 8 a Android.

¿Alguien ha visto una guía en línea o sabe cómo hacer tal cosa?

El primer paso que supongo sería averiguar cómo hacer que la aplicación en Windows Phone 8 se dé cuenta de su cerca de un dispositivo NFC Android. Y entonces sería para averiguar cómo hacer que la aplicación en el teléfono Android recibe el mensaje.

¡Gracias por adelantado!

* Responder *

Muy bien, aquí hay algunas respuestas / consejos

Terminé enviando los mensajes de NFC como tipo externo porque el envío de la aplicación / my.mimetype siguió dándome un "perdón de su teléfono no puedo recorgnize este tipo de archivo" en el teléfono de Windows a pesar de que el mensaje estaba recibiendo.

@Override public NdefMessage createNdefMessage(NfcEvent event) { NdefMessage ndefMessage = new NdefMessage(( new NdefRecord[] {createMimeRecord("packageName:externalType",docId.getBytes())})); return ndefMessage; } public NdefRecord createMimeRecord(String mimeType, byte[] payload) { byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII")); NdefRecord mimeRecord = new NdefRecord(NdefRecord.TNF_EXTERNAL_TYPE, mimeBytes, new byte[0], payload); return mimeRecord; } 

Todo lo que tienes que hacer en android es seguir el ejemplo de Android de las muestras de SDK (android-16/17 – AndroidBeamDemo) que se explica muy bien aquí – http://www.tappednfc.com/wp-content/uploads/TAPPED -NFCDeveloperGuide-Part1.pdf

Pero en lugar de usar la aplicación mimetype utilizar el tipo externo anterior y en su manifiesto poner lo siguiente en lugar del mimetype en el filtro de intención:

  <data android:host="ext" android:pathPrefix="/cco.drugformulary:externalType" android:scheme="vnd.android.nfc" /> 

Con respecto a la lectura y el envío del mensaje desde el teléfono de Windows se puede utilizar lo que el tipo de respuesta aceptado dijo que hacer y que debería funcionar, pero para el tipo poner cco.drugformulary: externalType como desde arriba (su nombre del proyecto, por supuesto).

Si usted está funcionando en cualquier problema no dude en preguntarme

One Solution collect form web for “Cómo enviar una cadena utilizando NFC desde un teléfono Windows 8 a un dispositivo Android”

Cuando se utiliza WP8 NFC hay fundamentalmente dos tipos de mensajes con los que puede trabajar: mensajes específicos de Windows y mensajes NDEF. Los mensajes específicos de Windows son fáciles de detectar ya que los publicará como tipos de mensajes "Windows. *". Sin embargo, los mensajes NDEF se publican usando el tipo de mensaje "NDEF". Por ejemplo, aquí hay un mensaje específico de la aplicación de Windows:

  private void WriteAppSpecificStringToTag(object sender, RoutedEventArgs e) { ProximityDevice device = ProximityDevice.GetDefault(); if (device != null) { device.PublishBinaryMessage("Windows:WriteTag.myApp", GetBufferFromString("Hello World!"), UnregisterOnSend); MessageBox.Show("Tap to write 'Hello World' on tag."); } } 

NDEF es un formato multiplataforma muy utilizado para optimizar el entorno extremadamente limitado de las etiquetas NFC (a menudo con menos de 100 bytes). Mientras que el marco de proximidad WP8 permite enviar y recibir mensajes NDEF no sabe nada sobre el formato NDEF. Es decir, el marco de proximidad WP8 envía y recibe una secuencia de bytes. Analizar el flujo de bytes y formatearlo correctamente es su responsabilidad como desarrollador de la aplicación.

Para formatear y analizar los mensajes de NDEF necesitará usar un framework de terceros o construir su propio. En términos de marcos de terceros Biblioteca NDEF para Proximity APIs hace un gran trabajo.

Por ejemplo, aquí es cómo formatear y escribir un mensaje NDEF específico de la aplicación usando la biblioteca NDEF :

  private void WriteNDEFRecordToTag(object sender, RoutedEventArgs e) { ProximityDevice device = ProximityDevice.GetDefault(); if (device != null) { device.PublishBinaryMessage("NDEF:WriteTag", new NdefMessage() { new NdefRecord { TypeNameFormat = NdefRecord.TypeNameFormatType.ExternalRtd, Type = "myApp".Select(c => (byte) c).ToArray(), Payload = "Hello World!".Select(c => (byte) c).ToArray() } }.ToByteArray().AsBuffer(), UnregisterOnSend); MessageBox.Show("Tap to write 'Hello World' on tag."); } } 

A continuación, le indicamos cómo recibir y analizar los mensajes NDEF en su aplicación:

  private void ReadNDEFRecordFromTag(object sender, RoutedEventArgs e) { ProximityDevice device = ProximityDevice.GetDefault(); if (device != null) { device.SubscribeForMessage("NDEF", ndefMessageRecieved); MessageBox.Show("Registered to NFC tag. Tap with NFC tag."); } } private void ndefMessageRecieved(ProximityDevice sender, ProximityMessage message) { var ndefMessage = NdefMessage.FromByteArray(message.Data.ToArray()); StringBuilder sb = new StringBuilder(); foreach (NdefRecord record in ndefMessage) { sb.AppendLine(Encoding.UTF8.GetString(record.Payload, 0, record.Payload.Length)); } Dispatcher.BeginInvoke(() => MessageBox.Show(sb.ToString())); } 

Cuando ejecutamos este fragmento de código en WP8 y pulsamos la etiqueta NDEF previamente escrita, podemos ver el siguiente mensaje:

MessageBox que dice hola mundo

Y si tomamos la misma etiqueta NFC y usamos la aplicación NFC TagInfo de Android, podemos ver los mismos datos:

Datos de información de NfcTag en Android

En caso de que usted se esté preguntando qué se transmite / trasnfered realmente cuando se utiliza NDEF, aquí está la aplicación de GoToTags de Windows en la etiqueta que acabamos de usar:

GoToTags mostrando los datos binarios almacenados en la etiqueta NDEF

Si la Biblioteca NDEF se siente un poco pesada para usted, siempre puede poner en marcha su NDEF homegrown formatter y parser. Hay un buen ejemplo de eso en este proyecto Nokia OSS @ NFC Tag Reader

En cuanto a NFC teléfono-a-teléfono vs NFC teléfono-a-etiqueta, los fragmentos de código anteriores funcionará para cualquiera de los escenarios. En caso de que quiera escribir en una etiqueta, simlpy mantendrá la operación ": WriteTag" en el tipo de mensaje. En caso de que desee comunicarse directamente con un teléfono cercano, simplemente retire la operación ": WriteTag". Ambos funcionan bien con WP8 <=> Android.

Observe sin embargo que hay diferencias en cómo Android y WP8 dirección NDEF. WP8 sólo puede leer el primer registro NDEF en un mensaje, mientras que Android puede leer todos los registros NDEF. Android puede trabajar con etiquetas sin formato NDEF y formatearlas; WP8 tiene que utilizar etiquetas con formato NDEF.

  • Aplicación iOS / android nativa para Windows Phone
  • Realizar y supervisar llamadas telefónicas dentro de la brecha telefónica
  • HAXM de Android SDK desactivado después de instalar Hyper V
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.