| | |
| | | import android.nfc.Tag; |
| | | import android.nfc.tech.MifareClassic; |
| | | |
| | | import com.dayu.recharge.utils.MyCommon; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.ArrayList; |
| | | |
| | |
| | | } |
| | | return helper; |
| | | } |
| | | |
| | | /** |
| | | * 设置NFC卡的密码 |
| | | * |
| | | * @param str |
| | | * @return |
| | | */ |
| | | // public NfcReadHelper setPassword(String str) { |
| | | // |
| | | // if (null != str && (str.length() <= 6)) { |
| | | // for (int i = 0; i < str.length(); i++) { |
| | | // bytes[i] = (byte) str.charAt(i); |
| | | // } |
| | | // } |
| | | // return helper; |
| | | // } |
| | | |
| | | /** |
| | | * 读取NFC卡的全部信息 |
| | |
| | | if (flag) { |
| | | callback.callBack(map); |
| | | } else { |
| | | callback.error(); |
| | | callback.error(MyCommon.ERROR); |
| | | } |
| | | } catch (IOException e) { |
| | | callback.error(MyCommon.ERROR_MOVE); |
| | | e.printStackTrace(); |
| | | } catch (Exception e) { |
| | | callback.error(); |
| | | callback.error(MyCommon.ERROR); |
| | | e.printStackTrace(); |
| | | } finally { |
| | | try { |
| | | mfc.close(); |
| | | } catch (IOException e) { |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | |
| | | mfc.connect(); |
| | | int count = mfc.getSectorCount(); |
| | | if (a < 0 || a > count - 1) { |
| | | callback.error(); |
| | | callback.error(MyCommon.ERROR); |
| | | return; |
| | | } |
| | | int bCount = mfc.getBlockCountInSector(a); |
| | | if (b < 0 || b > bCount - 1) { |
| | | callback.error(); |
| | | callback.error(MyCommon.ERROR); |
| | | return; |
| | | } |
| | | |
| | |
| | | byte[] data = mfc.readBlock(bIndex + b); |
| | | callback.callBack(data); |
| | | } else { |
| | | callback.error(); |
| | | callback.error(MyCommon.ERROR); |
| | | } |
| | | } catch (Exception e) { |
| | | callback.error(); |
| | | } catch (IOException e) { |
| | | callback.error(MyCommon.ERROR_MOVE); |
| | | e.printStackTrace(); |
| | | } catch (Exception e) { |
| | | callback.error(MyCommon.ERROR); |
| | | } finally { |
| | | try { |
| | | mfc.close(); |
| | |
| | | void callBack(Map<String, List<byte[]>> data); |
| | | |
| | | |
| | | void error(); |
| | | void error(int code); |
| | | } |
| | | |
| | | public interface NFCCallByteback { |
| | |
| | | |
| | | void callBack(byte[] data); |
| | | |
| | | void error(); |
| | | void error(int code); |
| | | } |
| | | |
| | | } |