Anshumanb
10-07-2011, 08:11 AM
I have created an application where i add NFC support in my app.As given in android doc i go through an example where i can send text on tap of two device that support NFC in android phone.Now my question is that instead of sending text can i send image.If so how that can be done.If anyone know please suggest me, if possible with an example.The code that i used in sending text is.
public class NFCTestApp extends Activity
{ private NfcAdapter mAdapter; private TextView mText; private NdefMessage mMessage; public static NdefRecord newTextRecord(String text, Locale locale, boolean enco deInUtf8) { byte[] langBytes = locale.getLanguage().getBytes(Charset.forName("US-ASCII")); Charset utfEncoding = encodeInUtf8 ? Charset.forName("UTF-8") : Charset.forName("UTF-16"); byte[] textBytes = text.getBytes(utfEncoding); int utfBit = encodeInUtf8 ? 0 : (1 << 7); char status = (char) (utfBit + langBytes.length); byte[] data = new byte[1 + langBytes.length + textBytes.length]; data[0] = (byte) status; System.arraycopy(langBytes, 0, data, 1, langBytes.length); System.arraycopy(textBytes, 0, data, 1 + langBytes.length, textBytes.length); return new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, new byte[0], data); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mAdapter = NfcAdapter.getDefaultAdapter(this); setContentView(R.layout.main); mText = (TextView) findViewById(R.id.text); if (mAdapter != null) { mText.setText("Tap another Android phone with NFC to push 'NDEF Push Sample'"); } else { mText.setText("This phone is not NFC enabled."); } // Create an NDEF message with some sample text mMessage = new NdefMessage( new NdefRecord[] { newTextRecord("NDEF Push Sample", Locale.ENGLISH, true)}); } @Override public void onResume() { super.onResume(); if (mAdapter != null) mAdapter.enableForegroundNdefPush(this, mMessage); } @Override public void onPause() { super.onPause(); if (mAdapter != null) mAdapter.disableForegroundNdefPush(this); } }
public class NFCTestApp extends Activity
{ private NfcAdapter mAdapter; private TextView mText; private NdefMessage mMessage; public static NdefRecord newTextRecord(String text, Locale locale, boolean enco deInUtf8) { byte[] langBytes = locale.getLanguage().getBytes(Charset.forName("US-ASCII")); Charset utfEncoding = encodeInUtf8 ? Charset.forName("UTF-8") : Charset.forName("UTF-16"); byte[] textBytes = text.getBytes(utfEncoding); int utfBit = encodeInUtf8 ? 0 : (1 << 7); char status = (char) (utfBit + langBytes.length); byte[] data = new byte[1 + langBytes.length + textBytes.length]; data[0] = (byte) status; System.arraycopy(langBytes, 0, data, 1, langBytes.length); System.arraycopy(textBytes, 0, data, 1 + langBytes.length, textBytes.length); return new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, new byte[0], data); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mAdapter = NfcAdapter.getDefaultAdapter(this); setContentView(R.layout.main); mText = (TextView) findViewById(R.id.text); if (mAdapter != null) { mText.setText("Tap another Android phone with NFC to push 'NDEF Push Sample'"); } else { mText.setText("This phone is not NFC enabled."); } // Create an NDEF message with some sample text mMessage = new NdefMessage( new NdefRecord[] { newTextRecord("NDEF Push Sample", Locale.ENGLISH, true)}); } @Override public void onResume() { super.onResume(); if (mAdapter != null) mAdapter.enableForegroundNdefPush(this, mMessage); } @Override public void onPause() { super.onPause(); if (mAdapter != null) mAdapter.disableForegroundNdefPush(this); } }