Android NFC 可以读取卡片信息,具体方法如下1:
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 标签。。
请注意,上述代码仅为示例代码,实际开发中还需要进行更多的错误处理和数据验证。