Я создал простое приложение, в котором у меня есть изображение.Теперь я хочу сделать следующее:
Сначала я хочу добавить поддержку NFC в свое приложение.
Как только я добавлю поддержку nfc вмое приложение, следующее, что я хочу, это как я могу перенести изображение, которое присутствует в моем приложении, на другое устройство с поддержкой NFC.
Если кто-нибудь знает, пожалуйста, помогите мне решить эту проблему,если возможно с примером.Я ознакомился с документацией, представленной на developer.android.com для NFC, но в этом случае она дает только передачу текста с одного устройства на другое с использованием NFC, но в моем случае я хочу передать изображение вместо текста.
Код для передачи текста
public class NFCTestApp extends Activity
{
private NfcAdapter mAdapter;
private TextView mText;
private NdefMessage mMessage;
public static NdefRecord newTextRecord(byte[] 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;
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);
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.Compress.JPEG, 100, baos);
byte[] b = baos.toByteArray();
// Create an NDEF message
mMessage = new NdefMessage(
new NdefRecord[] { newTextRecord(b, 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);
}
}