我正在慢慢学习 Android。目前我在使用 NFC,我已经学习了一些教程并且我开始更好地理解它是如何工作的以及如何读写标签,我现在可以在我购买的标签上做什么。 大多数人希望他们的应用程序在靠近标签时立即启动,但出于学习目的,我只想在按下按钮时才开始发现,换句话说,我想控制发现。 我知道为了让应用程序立即启动,我们在 Manifest.xml 中实现了过滤器 ACTION_NDEF_DISCOVERED 我还读到只有当我们的应用程序不在前台时,使用 Intent 进行过滤才有效。如果我们的应用程序在前台运行,它不会收到通知,所以我们必须使用 NFC 前台调度。
我想不通的是如何操纵滤镜和前景,以便它们只对我点击按钮使用react。
我的另一个问题是:它是否适用于读取和写入按钮?
有人可以帮忙吗?如果你给我一些代码,请解释一下,我真的在学习和理解之后:-)
干杯。
最佳答案
看看这个名为 NDEF 工具的库 - link .
我前段时间用过它,在点击按钮时读取和写入 NFC 标签。查看库和我的代码并尝试一下。
public class NFCReadActivity extends NfcReaderActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_read_nfc);
// Read the tag, without prompting how/who should read it
setDetecting(true);
}
@Override
protected void readNdefMessage(Message message)
{
if (message != null)
{
// Iterate through all records in message
for (int k = 0; k < message.size(); k++)
{
Record record = message.get(k);
// Get record type (record.getClass().getSimpleName())
if (record instanceof TextRecord)
{
// Get NFC message
String message = ((TextRecord) record).getText();
// Inform user
Crouton.makeText(this, message, Style.CONFIRM).show();
}
}
}
}
// An empty NDEF message was read
@Override
protected void readEmptyNdefMessage()
{
Crouton.makeText(this, getString(R.string.NFC_empty_message), Style.ALERT).show();
}
// Something was read via NFC, but it was not an NDEF message
@Override
protected void readNonNdefMessage()
{
Crouton.makeText(this, getString(R.string.NFC_non_ndef_message), Style.ALERT).show();
}
// NFC feature was found and is currently enabled
@Override
protected void onNfcStateEnabled()
{
}
// NFC feature was found but is currently disabled
@Override
protected void onNfcStateDisabled()
{
Crouton.makeText(this, getString(R.string.NFC_state_disabled), Style.ALERT).show();
new GoToSettingsDialog(this).showNFCSettings();
}
// NFC setting changed since last check. For example, the user enabled NFC in the wireless settings
@Override
protected void onNfcStateChange(boolean enabled)
{
}
// This device does not have NFC hardware
@Override
protected void onNfcFeatureNotFound()
{
Crouton.makeText(this, getString(R.string.NFC_not_found), Style.ALERT).show();
}
}
关于Android NFC 仅在单击按钮时读取标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30346842/