/**
   * 将给定字符串写入到IC卡中指定位置
   *
   * @param offset
   * @param cardData
   */
  public void writeCard(int offset, String cardData, String cardPwd) {
    if (reader.ic_init(mActivity, 0, 0) == 0) {
      chkPwd(cardPwd);

      byte[] data_buffer = new byte[256];

      CastHelper.AsciiToHex(cardData, data_buffer);
      int rc;
      rc = reader.swr_4442(0, offset, cardData.length() / 2, data_buffer);
      if (0 == rc) {
        ToastHelper.showShort(mActivity, "写卡成功");
      } else {
        ToastHelper.showShort(mActivity, "写卡失败");
      }
    }
    reader.ic_exit(0);
  }
 /** 校验IC卡密码 每次写卡之前都需要校验密码 */
 public void chkPwd(String cardPwd) {
   byte[] key_buffer = new byte[50];
   int rc;
   CastHelper.AsciiToHex(cardPwd, key_buffer);
   rc = reader.csc_4442(0, 3, key_buffer);
   if (rc == 0) {
     ToastHelper.showShort(mActivity, "密码正确");
   } else {
     ToastHelper.showShort(mActivity, "密码错误");
   }
 }
  public String readCard(int offset, int len) {
    String result = null;
    if (reader.ic_init(mActivity, 0, 0) == 0) {
      ToastHelper.showShort(mActivity, "连接成功");

      byte[] data_buffer = new byte[256];
      for (int i = 0; i < data_buffer.length; i++) {
        data_buffer[i] = (byte) 0;
      }
      int rc;
      rc = reader.srd_4442(0, offset, len, data_buffer);

      if (0 == rc) {
        result = CastHelper.get_recv_data_str(data_buffer, len);
      } else {
        ToastHelper.showShort(mActivity, "读卡失败");
      }
    } else {
      ToastHelper.showShort(mActivity, "写卡器连接失败");
    }
    return result;
  }