From d09bdcac6830afaad6e277fb558c16d2aa6187a7 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 14 十二月 2023 11:13:21 +0800
Subject: [PATCH] 卡标识码列表功能相关,可分辨设置不同类型卡标识码
---
app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java | 76 +++++++++++++++++++-------------------
1 files changed, 38 insertions(+), 38 deletions(-)
diff --git a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
index a27aa80..fd36401 100644
--- a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
@@ -5,15 +5,22 @@
*/
+import android.app.Activity;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
+import android.nfc.NdefMessage;
import android.nfc.NfcAdapter;
+import android.nfc.NfcEvent;
+import android.nfc.Tag;
+import android.nfc.cardemulation.CardEmulation;
import android.os.Handler;
import android.os.Message;
import com.dayu.recharge.card.UserCard;
+import com.dayu.recharge.tools.LoyaltyCardReader;
import com.dayu.recharge.tools.NfcReadHelper;
+import com.dayu.recharge.utils.LogUtil;
import com.dayu.recharge.utils.TipUtil;
import com.tencent.bugly.crashreport.CrashReport;
@@ -29,7 +36,7 @@
* 鍦╫nNewIntent鏂规硶涓墽琛宨ntent浼犻�掕繃鏉ョ殑Tag鏁版嵁
* 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛�
*/
-public class BaseNfcActivity extends BaseActivity {
+public class BaseNfcActivity extends BaseActivity implements LoyaltyCardReader.AccountCallback {
/**
* 璇ュ崱宸插啓鍏ョ敤鎴蜂俊鎭�
@@ -52,17 +59,29 @@
volatile UserCard userCard;
Handler handler;
+ public LoyaltyCardReader mLoyaltyCardReader;
/**
* onCreat->onStart->onResume->onPause->onStop->onDestroy
* 鍚姩Activity锛岀晫闈㈠彲瑙佹椂.
*/
+
+ public static int READER_FLAGS =
+ NfcAdapter.FLAG_READER_NFC_A | NfcAdapter.FLAG_READER_SKIP_NDEF_CHECK;
+
@Override
protected void onStart() {
super.onStart();
//姝ゅadapter闇�瑕侀噸鏂拌幏鍙栵紝鍚﹀垯鏃犳硶鑾峰彇message
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
+ Intent intent = new Intent(this, getClass());
+
//涓�鏃︽埅鑾種FC娑堟伅锛屽氨浼氶�氳繃PendingIntent璋冪敤绐楀彛
- mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()), 0);
+ mPendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
+
+// mLoyaltyCardReader = new LoyaltyCardReader(this);
+// if (mNfcAdapter != null) {
+// mNfcAdapter.enableReaderMode(this, mLoyaltyCardReader, READER_FLAGS, null);
+// }
}
@@ -89,14 +108,23 @@
//鎭㈠榛樿鐘舵��
if (mNfcAdapter != null)
mNfcAdapter.disableForegroundDispatch(this);
+// mNfcAdapter.disableReaderMode(this);
+
}
+
+// @Override
+// protected void onDestroy() {
+// super.onDestroy();
+// if (mNfcAdapter != null)
+// mNfcAdapter.disableReaderMode(this);
+// }
/**
* 妫�娴嬪伐浣�,鍒ゆ柇璁惧鐨凬FC鏀寔鎯呭喌
*
* @return
*/
- protected Boolean ifNFCUse(Context context) {
+ protected Boolean ifNFCUse(Activity context) {
if (mNfcAdapter == null) {
TipUtil.show(context, "璁惧涓嶆敮鎸丯FC锛�");
return false;
@@ -108,41 +136,13 @@
return true;
}
- /**
- * 璇诲彇鍏ㄩ儴鏁版嵁
- */
- public void readAllData(Intent intent) {
- try {
- NfcReadHelper.getInstence(intent)
- .getAllData(new NfcReadHelper.NFCCallListback() {
- @Override
- public void callBack(Map<String, List<byte[]>> data) {
- Message message = new Message();
-// 鑾峰彇1鎵囧尯鏁版嵁
- List<byte[]> oneSector = data.get("1");
- if (oneSector != null && oneSector.size() > 0) {
- userCard = UserCard.getBean(oneSector);
- message.what = RECHARGE;
- } else {
- message.what = ERROR;
- }
- if (handler != null) {
- handler.sendMessage(message);
- }
- }
- @Override
- public void error(int code) {
- if (handler != null) {
- Message message = new Message();
- message.what = ERROR;
- handler.sendMessage(message);
- }
- }
- });
- } catch (Exception e) {
- e.printStackTrace();
- CrashReport.postCatchedException(e);
- }
+ @Override
+ public void onAccountReceived(Tag tag) {
+
+ Intent intent = new Intent(this, getClass());
+ intent.putExtra(NfcAdapter.EXTRA_TAG, tag);
+ startActivity(intent);
+
}
}
--
Gitblit v1.8.0