首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >关于NFC仿真卡中如何让reader模式一直在读取,防止onDeactivated TAG端该如何处理 ?

关于NFC仿真卡中如何让reader模式一直在读取,防止onDeactivated TAG端该如何处理 ?

提问于 2024-01-17 17:51:32
回答 0关注 0查看 29

有个想法 就是通过Android HCE API扩展了HostApduService类。创建一个Android应用程序,然后模拟一个银行卡类的Tag端应用

贴出我的代码哈:

public class MyCardService extends HostApduService { private static final String TAG = "MyCardService"; /** * Returning an empty APDU response causes the hce service to wait */ private final byte[] DONT_RESPOND = new byte[]{}; // 等待响应的指示符 private final byte[] WAIT_RESPONSE = new byte[]{0x62, 0x00}; @Override public byte[] processCommandApdu(byte[] commandApdu, Bundle extras) { Log.d(TAG, "Received APDU command: " + byteArrayToHex(commandApdu)); // 使用异步任务进行延迟响应 asyncTaskApdu(); // 如果异步任务失败或被取消,则返回默认响应 return null; } @Override public void onDeactivated(int reason) { // 卡片被取消激活 Log.d(TAG, "Card deactivated: " + reason); } // 辅助方法:将字节数组转换为十六进制字符串 private static String byteArrayToHex(byte[] bytes) { StringBuilder sb = new StringBuilder(); for (byte b : bytes) { sb.append(String.format("%02X", b)); } return sb.toString(); } // 辅助方法:异步处理apdu private byte[] asyncTaskApdu() { AsyncTask<Void, Void, byte[]> asyncTask = new AsyncTask<Void, Void, byte[]>() { @Override protected byte[] doInBackground(Void... voids) { // 模拟处理时间 try { Thread.sleep(4000); // 模拟延迟 4 秒 } catch (InterruptedException e) { e.printStackTrace(); } return Util.hexStringToByteArray("6A82"); } @Override protected void onPostExecute(byte[] responseData) { Log.d(TAG, "00A4040007D276000085010100: " + Util.bytesToHex(responseData)); sendResponseApdu(responseData); Log.d(TAG, "Sending APDU response: " + byteArrayToHex(responseData)); } }; // 启动异步任务并等待完成 try { return asyncTask.get(); } catch (Exception e) { e.printStackTrace(); } return new byte[0]; } }

我目前的疑问点是 我如何在processCommandApdu中处理adpu的数据返回 才不会导致触发onDeactivated 因为我要在processCommandApdu返回的adpu进行一个网络的请求处理 如果网络请求回不来 想一直让reader模式处于激活状态 并不会触发onDeactivated事件 有没有好的方法实现一下呢?

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档