From 44e05fc867c3f028cf110f7b2fefb417d51646b2 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 14 三月 2024 12:01:13 +0800
Subject: [PATCH] 添加密码校验 修复用户卡bug

---
 app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java |   81 ++++++++++++++++++----------------------
 1 files changed, 36 insertions(+), 45 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..89456ef 100644
--- a/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
+++ b/app/src/main/java/com/dayu/recharge/activity/BaseNfcActivity.java
@@ -5,20 +5,16 @@
  */
 
 
+import android.app.Activity;
 import android.app.PendingIntent;
-import android.content.Context;
 import android.content.Intent;
 import android.nfc.NfcAdapter;
+import android.nfc.Tag;
 import android.os.Handler;
-import android.os.Message;
 
 import com.dayu.recharge.card.UserCard;
-import com.dayu.recharge.tools.NfcReadHelper;
+import com.dayu.recharge.tools.LoyaltyCardReader;
 import com.dayu.recharge.utils.TipUtil;
-import com.tencent.bugly.crashreport.CrashReport;
-
-import java.util.List;
-import java.util.Map;
 
 /**
  * Author:Created by Ricky on 2017/8/25.
@@ -29,7 +25,7 @@
  * 鍦╫nNewIntent鏂规硶涓墽琛宨ntent浼犻�掕繃鏉ョ殑Tag鏁版嵁
  * 灏哊FC鏍囩鍗¢潬杩戞墜鏈哄悗閮紙NFC鏍囩鍗″彲缃戜笂鑷璐拱锛�
  */
-public class BaseNfcActivity extends BaseActivity {
+public class BaseNfcActivity extends BaseActivity implements LoyaltyCardReader.AccountCallback {
 
     /**
      * 璇ュ崱宸插啓鍏ョ敤鎴蜂俊鎭�
@@ -52,17 +48,31 @@
     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 +99,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 +127,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