gpt4 book ai didi

android - 如何使用NFC传输图像

转载 作者:行者123 更新时间:2023-11-29 22:19:12 24 4
gpt4 key购买 nike

我创建了一个简单的应用程序,其中有一张图片。现在我要做的是。

  1. 首先,我想为我的应用程序添加 NFC 支持。

  2. 在我的应用程序中添加 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);
}
}

最佳答案

首先,您需要将此包含在您的 list 文件中以启用 NFC 支持:

<uses-permission android:name="android.permission.NFC" />
<uses-sdk android:minSdkVersion="9" />
<uses-feature android:name="android.hardware.nfc" android:required="true" />

然后你可能会看看NFCDemo ,来自 Google 的官方 NFC 演示应用,供引用。

关于android - 如何使用NFC传输图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7709756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com