Seguí un tutorial usando el código fuente de Adam Rocker para mi NFCTest. Quiero poder leer y escribir etiquetas NFC y también lanzar una aplicación.¿Cómo leer y escribir etiquetas Android NFC?
Respuesta
Creo que el código que ha encontrado se refiere a la era anterior a la 2.3.3. En este punto, no pudo escribir una etiqueta, pero con Android 2.3.3 esto es posible. No hay necesidad de intentar hackear el sistema y escribir etiquetas como esta.
Tenga una mirada en el Proyecto de Demostración de la NFC: http://developer.android.com/resources/samples/NFCDemo/index.html
El proyecto utilidad NDEF Tools for Android ayuda a hacer la siguiente
El proyecto también incluye enlaces de datos para todos los tipos de registros NDEF estandarizados, lo que realmente simplifica las cosas en comparación con el trabajo con las clases (basadas en arreglos de bytes) NDEF incluidas en el SDK de Android.
También vea el NFC Eclipse plugin para obtener un editor NDEF gráfico - viene con una utilidad app que lee y escribe en etiquetas y vigas, también tiene integración con lector NFC.
Por cierto, está buscando el Registro de aplicaciones de Android para iniciar la aplicación. La 'característica' de lanzamiento no requiere ninguna implementación real; está integrado en Android> = 4.0, por lo que poner ese registro en una etiqueta es suficiente.
Editar: Actualización enlaces
estoy leyendo sobre NFC lectura y escritura y yo estaba a punto de quitar el eclipse y repasar ADT, volvería a la NFC -eclipse-plugin ser compatible/usable? el tutorial de youtube se ve limpio – alex
lo siento quise decir Android Studio – alex
Esto parece prometedor. Sin embargo, ¿podemos leer y escribir en la misma actividad? –
se puede encontrar una biblioteca simple NFC con un ejemplo aquí: https://github.com/mateuyabar/pillowNFC
En primer lugar se tienen que pedir permiso en el archivo AndroidManifest.xml para NFC. Los permisos son:
<uses-permission android:name="android.permission.NFC" />
<uses-feature android:name="android.hardware.nfc" />
la actividad que va a realizar la operación de lectura/escritura de la NFC, anadir este filtro de intención en la que la actividad en el archivo AndroidManifest.xml:
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
En el método que la actividad onCreate() tiene que inicializar el adaptador de la NFC y definir intención Pendiente:
NfcAdapter mAdapter;
PendingIntent mPendingIntent;
mAdapter = NfcAdapter.getDefaultAdapter(this);
if (mAdapter == null) {
//nfc not support your device.
return;
}
mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
En onResume() volver a llamar permitir al primer plano de Despacho para detectar NFC intención.
mAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
En onPause() de devolución de llamada que debe tener para desactivar el envío forground:
if (mAdapter != null) {
mAdapter.disableForegroundDispatch(this);
}
En onNewIntent() devolver la llamada método obtendrá el nuevo Intención NFC. Después de obtener The Intent, debe analizar el intento de detectar la tarjeta:
@Override
protected void onNewIntent(Intent intent){
getTagInfo(intent)
}
private void getTagInfo(Intent intent) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
}
Ahora tiene la etiqueta.Luego puede consultar la lista Tag Tech para detectar esa etiqueta. La técnica de detección de etiqueta es aquí en My Another Answer proyecto completo completa es aquí en My github profile
Hola, Sr. Karim, me gustaría crear mi propia tarjeta de visita digital, así que por favor dígame qué etiqueta de nfc necesito comprar. – Sun
Puedes usar Mifare Classic 1k. Tiene una gran memoria (1024 bytes) y cada bloque puede escribir 16 bytes a la vez. También puede bloquear sus datos para evitar escribir más. –
en primer lugar poner estos en su manifiesto:
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.INTERNET" />
y luego poner esto en su actividad que desea leer NFC:
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
al final añadir seguir adelante como mi Actividad:
/* * Copyright (C) 2010 The Android Open Source Project * Copyright (C) 2011 Adam Nybäck * * Licencia bajo la Licencia Apache, Versión 2.0 (la "Licencia"); * no puede usar este archivo excepto en conformidad con la Licencia. * Usted puede obtener una copia de la Licencia en * * http://www.apache.org/licenses/LICENSE-2.0 * * A menos que lo requiera la ley aplicable o se acuerde por escrito, el software * distribuido bajo la Licencia se distribuye "tal cual", * SIN GARANTÍAS O CONDICIONES DE NINGÚN TIPO, ya sean expresas o implícitas. * Consulte la Licencia para ver el lenguaje específico que rige los permisos y * limitaciones bajo la Licencia. */
package ***.***.***.***;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.AnimationDrawable;
import android.nfc.NdefMessage;
import android.nfc.NdefRecord;
import android.nfc.NfcAdapter;
import android.nfc.Tag;
import android.nfc.tech.Ndef;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.balysv.materialripple.MaterialRippleLayout;
import com.blogspot.android_er.androidnfctagdiscovered.R;
import com.pixelcan.inkpageindicator.InkPageIndicator;
import hpbyp.ir.app.hojre.fragment.slider.SliderPagerAdapter;
import hpbyp.ir.app.hojre.utiles.G;
import uk.co.chrisjenx.calligraphy.CalligraphyContextWrapper;
/**
* An {@link Activity} which handles a broadcast of a new tag that the device just discovered.
*/
public class ActivityLoadDataFromNFC extends AppCompatActivity {
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_load_data_from_nfc);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mAdapter = NfcAdapter.getDefaultAdapter(this);
if (mAdapter == null) {
//nfc not support your device.
return;
}
mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this,
getClass()).addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0);
}
NfcAdapter mAdapter;
PendingIntent mPendingIntent;
@Override
protected void onResume() {
super.onResume();
mAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
}
@Override
protected void onPause() {
super.onPause();
if (mAdapter != null) {
mAdapter.disableForegroundDispatch(this);
}
}
@Override
protected void onNewIntent(Intent intent) {
Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);
GetDataFromTag(tag, intent);
}
private void GetDataFromTag(Tag tag, Intent intent) {
Ndef ndef = Ndef.get(tag);
try {
ndef.connect();
// txtType.setText(ndef.getType().toString());
// txtSize.setText(String.valueOf(ndef.getMaxSize()));
// txtWrite.setText(ndef.isWritable() ? "True" : "False");
Parcelable[] messages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (messages != null) {
NdefMessage[] ndefMessages = new NdefMessage[messages.length];
for (int i = 0; i < messages.length; i++) {
ndefMessages[i] = (NdefMessage) messages[i];
}
NdefRecord record = ndefMessages[0].getRecords()[0];
byte[] payload = record.getPayload();
String text = new String(payload);
Log.e("tag", "vahid" + text);
ndef.close();
}
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Cannot Read From Tag.", Toast.LENGTH_LONG).show();
}
}
}
- 1. Cómo escribir una etiqueta RFID para leer Nexus S NFC?
- 2. etiqueta NFC y datos NFC formato de Android
- 3. Lectura de varias etiquetas NFC simultáneamente en Android
- 4. "Nueva etiqueta recopilada" en lugar de leer las etiquetas de la aplicación - NFC android
- 5. Escritura de etiquetas NFC Mifare Ultralight
- 6. Android NFC start service
- 7. Escribir datos en la etiqueta NFC en el tutorial de Android
- 8. Etiquetas pasivas RFID de larga distancia compatibles en teléfonos Android con NFC?
- 9. Android NFC: protocolo SNEP y respuesta P2P
- 10. Las etiquetas NFC se pueden leer con un lector de RFID?
- 11. ¿Puede NFC en nexus mobile leer la etiqueta RFID normal?
- 12. Pilas NFC en el sistema operativo Android
- 13. ¿Puede un teléfono inteligente leer etiquetas RFID desde una distancia de unos pocos pies (NO NFC)?
- 14. ¿Cómo leer y escribir varios archivos?
- 15. ¿Cómo leer y escribir archivos xml?
- 16. Escribir y leer Cadena en un almacenamiento interno en Android
- 17. Socket leer y escribir simultáneamente
- 18. phonegap leer y escribir el archivo json
- 19. Detectando NFC en dispositivos Android
- 20. Cómo utilizar la API NFC con google chrome para Android
- 21. La manera más fácil de escribir y leer un XML
- 22. Biblioteca NFC C# para Windows
- 23. Bloquear tabla para leer y escribir
- 24. Android NFC encierra/detiene el escaneado después repetitiva exploraciones
- 25. PHP leer y escribir archivos de JSON
- 26. Java FileLock para leer y escribir
- 27. Java - leer, manipular y escribir archivos WAV
- 28. JAVA: leer y escribir un archivo juntos
- 29. ¿archivo abierto para leer y escribir?
- 30. Leer y escribir archivos binarios en VBScript
cheque esto: https://stackoverflow.com/a/45773087/5733853 – HPbyP