• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

How to send image from one device to another using NFC support from my app

Anshumanb

Lurker
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.

Code:
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);
    }
}
 
Back
Top Bottom