diff --git a/app/src/main/java/com/newcapec/jni/Icc.java b/app/src/main/java/com/newcapec/jni/Icc.java
index 3a4f197..0a3cb03 100644
--- a/app/src/main/java/com/newcapec/jni/Icc.java
+++ b/app/src/main/java/com/newcapec/jni/Icc.java
@@ -13,12 +13,12 @@
     /**
      * @param version
      */
-    public Icc(int version) {
-        if (version < 110) {
+    public Icc(String version) {
+        if (version.compareTo("110") < 0) {
             System.loadLibrary("iccV108");
-        } else if (version < 115) {
+        } else if (version.compareTo("115") < 0) {
             System.loadLibrary("iccV110");
-        } else if (version < 116) {
+        } else if (version.compareTo("116") < 0) {
             System.loadLibrary("iccV115");
         } else {
             System.loadLibrary("iccV116");
diff --git a/app/src/main/java/com/newcapec/jni/Picc.java b/app/src/main/java/com/newcapec/jni/Picc.java
index fadb179..18ecad4 100644
--- a/app/src/main/java/com/newcapec/jni/Picc.java
+++ b/app/src/main/java/com/newcapec/jni/Picc.java
@@ -105,10 +105,10 @@
     /**
      * @param version
      */
-    public Picc(int version) {
-        if (version < 110) {
+    public Picc(String version) {
+        if (version.compareTo("110") < 0) {
             System.loadLibrary("piccV108");
-        } else if (version < 116) {
+        } else if (version.compareTo("116") < 0) {
             System.loadLibrary("piccV115");
         } else {
             System.loadLibrary("piccV116");
diff --git a/app/src/main/java/com/supwisdom/entity/SysParaRecord.kt b/app/src/main/java/com/supwisdom/entity/SysParaRecord.kt
index 8829b75..6ddb373 100644
--- a/app/src/main/java/com/supwisdom/entity/SysParaRecord.kt
+++ b/app/src/main/java/com/supwisdom/entity/SysParaRecord.kt
@@ -17,5 +17,5 @@
     /**
      * 定额消费同卡消费间隔(s)
      */
-    var fixpayGap: Int = 0
+    var fixpayGap: Long = 0
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/epaycard/DaliReader.kt b/app/src/main/java/com/supwisdom/epaycard/DaliReader.kt
index 4992921..f146948 100644
--- a/app/src/main/java/com/supwisdom/epaycard/DaliReader.kt
+++ b/app/src/main/java/com/supwisdom/epaycard/DaliReader.kt
@@ -37,9 +37,9 @@
         val temp = Build.DISPLAY
         val version = if (temp.contains("CAP08S-V1")) {
             when {
-                temp < "CAP08S-V1.0.9" -> 108
-                temp < "CAP08S-V1.1.1" -> 110
-                else -> 115
+                temp < "CAP08S-V1.0.9" -> "108"
+                temp < "CAP08S-V1.1.1" -> "110"
+                else -> "115"
             }
         } else {
             /**
@@ -48,7 +48,8 @@
             CommonUtil.getSerialNumber()?.replace("v", "")
                 ?.replace("V", "")
                 ?.replace(".", "")
-                ?.toInt() ?: 116
+                ?.replace(" ", "")
+                ?: "116"
         }
         picc = Picc(version)
         val ret = picc!!.open()
