Android NFC 可以读取卡片信息,具体方法如下1: 1、点对点模式:支持 NFC 设备与其他 NFC 对等设备交换数据; 2、卡模拟模式:支持 NFC 设备本身充当 NFC 卡,然后可以……
1、点对点模式:支持 NFC 设备与其他 NFC 对等设备交换数据;
2、卡模拟模式:支持 NFC 设备本身充当 NFC 卡,然后可以通过外部 NFC 读取器(例如 NFC 销售终端)访问模拟 NFC 卡。
以下是一段简单的 Android NFC 读取卡片信息的代码:
public class MainActivity extends AppCompatActivity implements View.OnLongClickListener {
private TextView mTextView;
privateNFCAdapter mNFCAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = findViewById(R.id.text_view);
mTextView.setOnLongClickListener(this);
mNFCAdapter = NfcAdapter.getDefaultAdapter(this);
if (mNFCAdapter == null) {
Toast.makeText(this, "NFC is not available", Toast.LENGTH_SHORT).show();
return;
}
if (!mNFCAdapter.isEnabled()) {
Toast.makeText(this, "NFC is disabled", Toast.LENGTH_SHORT).show();
return;
}
}
@Override
public boolean onLongClick(View v) {
Intent intent = new Intent(MainActivity.this, TagReaderActivity.class);
startActivityForResult(intent, 0);
return true;
}
@Override
protected void onNewIntent(Intent intent) {
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
Parcelable[] messages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
for (Parcelable message : messages) {
NdefMessage ndefMessage = (NdefMessage) message;
for (byte[] payLoad : ndefMessage.getRecords()) {
String str = new String(payLoad);
mTextView.setText(str);
}
}
}
}
}
在上面的代码中,我们创建了一个 MainActivity 类,该类继承自 AppCompatActivity 类,并实现了 View.OnLongClickListener 接口。我们在 onCreate() 方法中获取了 TextView 控件和 NFCAdapter 对象。我们检查 NFCAdapter 是否可用,并检查用户是否启用了 NFC。在 onLongClick() 方法中,我们启动了一个新的活动 TagReaderActivity,该活动用于读取 NFC 标签。。
请注意,上述代码仅为示例代码,实际开发中还需要进行更多的错误处理和数据验证。
还没有评论呢,快来抢沙发~