diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3df16d522..bd342ecc6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -104,6 +104,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/ceui/lisa/activities/NfcDemoActivity.java b/app/src/main/java/ceui/lisa/activities/NfcDemoActivity.java new file mode 100644 index 000000000..f03da06d7 --- /dev/null +++ b/app/src/main/java/ceui/lisa/activities/NfcDemoActivity.java @@ -0,0 +1,69 @@ +package ceui.lisa.activities; + +import android.app.PendingIntent; +import android.content.Intent; +import android.nfc.NfcAdapter; +import android.nfc.Tag; + +import ceui.lisa.R; +import ceui.lisa.base.BaseActivity; +import ceui.lisa.databinding.ActivityNfcBinding; +import ceui.lisa.utils.Common; + +public class NfcDemoActivity extends BaseActivity { + + private NfcAdapter mNfcAdapter; + private PendingIntent pi; + + @Override + protected int initLayout() { + return R.layout.activity_nfc; + } + + @Override + protected void initView() { + mNfcAdapter = NfcAdapter.getDefaultAdapter(this); + + pi = PendingIntent.getActivity(this, 0, new Intent(this, getClass()) + .addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP), 0); + processIntent(getIntent()); + } + + @Override + protected void initData() { + + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())) { + processIntent(intent); + } + } + + private void processIntent(Intent intent) { + //取出封装在intent中的TAG + Tag tagFromIntent = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG); + String CardId =ByteArrayToHexString(tagFromIntent.getId()); + Common.showLog("CardId " + tagFromIntent.toString()); + Common.showLog("intent " + intent.toString()); + } + + private String ByteArrayToHexString(byte[] inarray) { + int i, j, in; + String[] hex = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", + "B", "C", "D", "E", "F" }; + String out = ""; + + + for (j = 0; j < inarray.length; ++j) { + in = (int) inarray[j] & 0xff; + i = (in >> 4) & 0x0f; + out += hex[i]; + i = in & 0x0f; + out += hex[i]; + } + return out; + } +} diff --git a/app/src/main/res/layout/activity_nfc.xml b/app/src/main/res/layout/activity_nfc.xml new file mode 100644 index 000000000..9f7553bb2 --- /dev/null +++ b/app/src/main/res/layout/activity_nfc.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/nfc_tech_filter.xml b/app/src/main/res/xml/nfc_tech_filter.xml new file mode 100644 index 000000000..496a0c575 --- /dev/null +++ b/app/src/main/res/xml/nfc_tech_filter.xml @@ -0,0 +1,30 @@ + + + + android.nfc.tech.IsoDep + + + android.nfc.tech.NfcA + + + android.nfc.tech.NfcB + + + android.nfc.tech.NfcF + + + android.nfc.tech.NfcV + + + android.nfc.tech.Ndef + + + android.nfc.tech.NdefFormatable + + + android.nfc.tech.MifareClassic + + + android.nfc.tech.MifareUltralight + + \ No newline at end of file