completed ring mode.
authorTrillGates <williamtrillgates@gmail.com>
Fri, 9 Apr 2021 08:53:54 +0000 (16:53 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Fri, 9 Apr 2021 08:53:54 +0000 (16:53 +0800)
app/src/main/java/com/enqualcomm/support/bean/Alarm.java
app/src/main/java/com/enqualcomm/support/service/SilentManager.java
app/src/main/java/com/enqualcomm/support/utils/ProfileManager.java [new file with mode: 0644]
app/src/main/java/com/ic/protocols/protocol_fzd.java
app/src/main/java/com/ic/protocols/protocol_ic.java

index 646d0a2..bba17a7 100644 (file)
@@ -1,66 +1,67 @@
 package com.enqualcomm.support.bean;\r
 \r
 public class Alarm {\r
-  public String name;\r
-  public String ring;\r
-  public String status;\r
-  public String time;\r
-  public String week;\r
+    public String name;\r
+    public String ring;\r
+    public String status;\r
+    public String time;\r
+    //星期是1~7\r
+    public String week;\r
 \r
-  public Alarm(String _time, String _week, String _ring, String _status) {\r
-    this.time = _time;\r
-    this.week = _week;\r
-    this.ring = _ring;\r
-    this.status = _status;\r
-  }\r
+    public Alarm(String _time, String _week, String _ring, String _status) {\r
+        this.time = _time;\r
+        this.week = _week;\r
+        this.ring = _ring;\r
+        this.status = _status;\r
+    }\r
 \r
-  public Alarm(String _time, String _week, String _ring, String _status, String _name) {\r
-    this.time = _time;\r
-    this.week = _week;\r
-    this.ring = _ring;\r
-    this.status = _status;\r
-    this.name = _name;\r
-  }\r
+    public Alarm(String _time, String _week, String _ring, String _status, String _name) {\r
+        this.time = _time;\r
+        this.week = _week;\r
+        this.ring = _ring;\r
+        this.status = _status;\r
+        this.name = _name;\r
+    }\r
 \r
-  public boolean equals(Object var1) {\r
-    if (this == var1) {\r
-      return true;\r
-    } else if (var1 != null && this.getClass() == var1.getClass()) {\r
-      Alarm var2 = (Alarm)var1;\r
-      if (!this.time.equals(var2.time)) {\r
-        return false;\r
-      } else if (!this.week.equals(var2.week)) {\r
-        return false;\r
-      } else if (!this.ring.equals(var2.ring)) {\r
-        return false;\r
-      } else {\r
-        return !this.status.equals(var2.status) ? false : this.name.equals(var2.name);\r
-      }\r
-    } else {\r
-      return false;\r
+    public boolean equals(Object var1) {\r
+        if (this == var1) {\r
+            return true;\r
+        } else if (var1 != null && this.getClass() == var1.getClass()) {\r
+            Alarm var2 = (Alarm) var1;\r
+            if (!this.time.equals(var2.time)) {\r
+                return false;\r
+            } else if (!this.week.equals(var2.week)) {\r
+                return false;\r
+            } else if (!this.ring.equals(var2.ring)) {\r
+                return false;\r
+            } else {\r
+                return !this.status.equals(var2.status) ? false : this.name.equals(var2.name);\r
+            }\r
+        } else {\r
+            return false;\r
+        }\r
     }\r
-  }\r
 \r
-  public String toString() {\r
-    StringBuilder var1 = new StringBuilder();\r
-    var1.append("Alarm{time='");\r
-    var1.append(this.time);\r
-    var1.append('\'');\r
-    var1.append(", week='");\r
-    var1.append(this.week);\r
-    var1.append('\'');\r
-    var1.append(", ring='");\r
-    var1.append(this.ring);\r
-    var1.append('\'');\r
-    var1.append(", status='");\r
-    var1.append(this.status);\r
-    var1.append('\'');\r
-    var1.append(", name='");\r
-    var1.append(this.name);\r
-    var1.append('\'');\r
-    var1.append('}');\r
-    return var1.toString();\r
-  }\r
+    public String toString() {\r
+        StringBuilder var1 = new StringBuilder();\r
+        var1.append("Alarm{time='");\r
+        var1.append(this.time);\r
+        var1.append('\'');\r
+        var1.append(", week='");\r
+        var1.append(this.week);\r
+        var1.append('\'');\r
+        var1.append(", ring='");\r
+        var1.append(this.ring);\r
+        var1.append('\'');\r
+        var1.append(", status='");\r
+        var1.append(this.status);\r
+        var1.append('\'');\r
+        var1.append(", name='");\r
+        var1.append(this.name);\r
+        var1.append('\'');\r
+        var1.append('}');\r
+        return var1.toString();\r
+    }\r
 }\r
 \r
 \r
index a7aaf43..23b56bd 100644 (file)
@@ -41,6 +41,7 @@ import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Iterator;
+import java.util.List;
 
 import static android.telephony.TelephonyManager.CALL_STATE_OFFHOOK;
 import static android.telephony.TelephonyManager.CALL_STATE_RINGING;
@@ -56,11 +57,11 @@ public class SilentManager extends AbstractInvokeHandlerService {
     private static final long ONE_WEEK = 604800000L;
     private static final long ONE_DAY = 86400000L;
 
-    private ArrayList<Alarm> alarms;
+    private List<Alarm> alarms;
     private boolean haveHandSilence;
     private boolean isCalling;
     AlarmManager mAlarmManager;
-    private SilentManager.AlramReceiver mAlramReceiver;
+    private SilentManager.AlramReceiver mAlarmReceiver;
     Connection mConnection;
 
     private static Handler mHandler;
@@ -117,11 +118,8 @@ public class SilentManager extends AbstractInvokeHandlerService {
                 case PRECISE_CALL_STATE_DISCONNECTING: //挂电话
                 case PRECISE_CALL_STATE_DISCONNECTED: //挂电话
                     isCalling = false;
-//          if (SilentManager.this.haveHandSilence) {
-//            SilentManager.this.handSilence(SilentManager.this.mContext, SilentManager.this.mValue_isSilence);
-//          }
                     if (ICAudioManager.needMute == true) {
-//            ICAudioManager.restoreVolumn(mContext); //2秒后恢复音量
+                        //2秒后恢复音量
                         mHandler.postDelayed(new Runnable() {
                             @Override
                             public void run() {
@@ -204,21 +202,21 @@ public class SilentManager extends AbstractInvokeHandlerService {
 
     }
 
-    private void cancelAlarm(ArrayList<Alarm> var1) {
+    private void cancelAlarm(List<Alarm> var1) {
         Iterator var2 = var1.iterator();
 
         while (var2.hasNext()) {
-            Alarm var3 = (Alarm) var2.next();
-            String var10 = var3.time;
-            String var4 = var3.week;
-            String var5 = var3.ring;
-            String var11 = var3.name;
-            char[] var6 = var4.toCharArray();
-            int var7 = var6.length;
+            Alarm alarmItem = (Alarm) var2.next();
+            String time = alarmItem.time;
+            String week = alarmItem.week;
+            String ring = alarmItem.ring;
+            String name = alarmItem.name;
+            char[] result = week.toCharArray();
+            int var7 = result.length;
 
             for (int var8 = 1; var8 < var7; ++var8) {
-                char var9 = var6[var8];
-                this.mAlarmManager.cancel(this.getPendingIntent(var10, var4, var5, var11, var9 - 47, 0, false));
+                char var9 = result[var8];
+                this.mAlarmManager.cancel(this.getPendingIntent(time, week, ring, name, var9 - 47, 0, false));
             }
         }
 
@@ -270,7 +268,8 @@ public class SilentManager extends AbstractInvokeHandlerService {
         intent.putExtra("IS_REPEAT", repeat);
         intent.putExtra("TIME_STAMP", tmpTimeInMillis);
         intent.setData(Uri.parse(week));
-        return PendingIntent.getService(this.mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+        return PendingIntent.getService(this.mContext,
+                0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
     }
 
     private PendingIntent getPendingIntent(String var1, String var2,
@@ -382,23 +381,6 @@ public class SilentManager extends AbstractInvokeHandlerService {
 
     private void handSilence(Context var1, boolean var2) {
         this.mValue_isSilence = var2;
-
-
-    /*
-    if (this.isCalling) {
-      this.haveHandSilence = true;
-    } else {
-      this.haveHandSilence = false;
-      SharPreferenceUtil.setPrefBoolean(var1, "KEY_ISSILENCE", var2);
-      Intent var3 = new Intent();
-      var3.setAction("com.enqualcomm.support.ACTION_ISSILENCE2IMESSAGE");
-      var3.putExtra("KEY_ISSILENCE", var2);
-      var1.sendBroadcast(var3);
-
-     // ComponentName var4 = new ComponentName(SERVICE_PKG_NAME, SERVICE_CLS_NAME);
-     // Intent var5 = (new Intent("com.enqualcomm.support.ACTION_VIDEO_END_CALL")).setComponent(var4);
-     // this.mRuntime.getContextProxy().context.startService(var5);
-    }*/
     }
 
     private void handleSilent(Runtime runtime, boolean silent) {
@@ -588,7 +570,6 @@ public class SilentManager extends AbstractInvokeHandlerService {
                 if (!var6.contains(var7.toString())) {
                     continue;
                 }
-
                 long var8 = var5.startTimeMillis - var2;
                 int var10;
                 int var11;
@@ -597,18 +578,15 @@ public class SilentManager extends AbstractInvokeHandlerService {
                     var11 = Integer.parseInt(var5.start.substring(5, 7));
                     AlarmHelper.setTimeAlarm(this.mContext, var10, var11, "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START");
                 }
-
                 var8 = var5.endTimeMillis - var2;
                 if (var8 < (long) (CoreService.alarmCycle * 60 * 1000) && var8 > 0L) {
                     var10 = Integer.parseInt(var5.end.substring(2, 4));
                     var11 = Integer.parseInt(var5.end.substring(5, 7));
                     AlarmHelper.setTimeAlarm(this.mContext, var10, var11, "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_END");
                 }
-
                 if (var5.startTimeMillis > var2 || var5.endTimeMillis <= var2) {
                     continue;
                 }
-
                 this.mInterval = var5.interval;
                 if (!var1) {
 //          AlarmHelper.setRealTimeAlarm(this.mContext, Integer.parseInt(this.mInterval), ACTION_HEATR_RATE_START);
@@ -627,11 +605,8 @@ public class SilentManager extends AbstractInvokeHandlerService {
     }
 
     private void onSilentStateChange(boolean var1) {
-
         SharPreferenceUtil.setPrefBoolean(mContext, "KEY_ISSILENCE", var1);
         setSilentConfig(mContext, var1);
-
-
         if (this.alarms != null) {
             if (var1) {
                 this.cancelAlarm(this.alarms);
@@ -650,17 +625,16 @@ public class SilentManager extends AbstractInvokeHandlerService {
 
     }
 
-    private ArrayList<Alarm> queryAlarm() {
-        ArrayList var1 = this.mDbHelper.queryAlarm();
+    private List<Alarm> queryAlarm() {
+        List<Alarm> alarmList = this.mDbHelper.queryAlarm();
         if (!this.mInSilent) {
             if (this.alarms != null) {
                 this.cancelAlarm(this.alarms);
             }
 
-            this.setNewAlarm(var1);
+            this.setNewAlarm(alarmList);
         }
-
-        return var1;
+        return alarmList;
     }
 
     private ArrayList<Antioff> queryAntioff() {
@@ -689,7 +663,7 @@ public class SilentManager extends AbstractInvokeHandlerService {
         return this.mDbHelper.queryStheartRate(true);
     }
 
-    private void setNewAlarm(ArrayList<Alarm> alarmArrayList) {
+    private void setNewAlarm(List<Alarm> alarmArrayList) {
         Calendar calendar = Calendar.getInstance();
         calendar.set(Calendar.SECOND, 0);
         long currentTime = System.currentTimeMillis();
@@ -826,19 +800,19 @@ public class SilentManager extends AbstractInvokeHandlerService {
         this.alarms = this.queryAlarm();
         this.voiceNotice = this.queryNotice();
         runtime.getContextProxy().context.getContentResolver().registerContentObserver(ICContentProvider.SILENT_URI, false, this.mContentObserver);
-        this.mAlramReceiver = new SilentManager.AlramReceiver();
+        this.mAlarmReceiver = new SilentManager.AlramReceiver();
         IntentFilter var5 = new IntentFilter();
         var5.addAction(ACTION_NOTICE_ALARM_CHANGE);
         var5.addAction(ACTION_ALARM_ALARM_CHANGE);
         //  var5.addAction("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE");
         // var5.addAction("com.eqc.heartrate.action.RESULT");
-        this.mContext.registerReceiver(this.mAlramReceiver, var5);
+        this.mContext.registerReceiver(this.mAlarmReceiver, var5);
         runtime.getContextProxy().getTelephonyManager().listen(this.phoneStateListener, 32);
     }
 
     public void onDetach(Connection var1, Runtime var2) {
         var2.getContextProxy().context.getContentResolver().unregisterContentObserver(this.mContentObserver);
-        this.mContext.unregisterReceiver(this.mAlramReceiver);
+        this.mContext.unregisterReceiver(this.mAlarmReceiver);
     }
 
     @Override
@@ -850,7 +824,7 @@ public class SilentManager extends AbstractInvokeHandlerService {
             String alarmTime = intent.getDataString();  //alarm:ST00.43,W,CON,闹铃,2
             ICLogger.d("alarmTime == > " + alarmTime);
             String currentTime = TimeUtil.getSystemTime();
-            alarmTime.substring(6).split("\\.");
+            alarmTime.substring(6).split("\\.");//ST00.43,W,CON,闹铃,2
             int alarmTime_minutes = Integer.parseInt(alarmTime.substring(6).split("\\.")[1].substring(0, 2));
             int alarmTime_hour = Integer.parseInt(alarmTime.substring(6).split("\\.")[0].substring(2));
             String[] currentTimeArray = currentTime.split(";")[1].split(":");
diff --git a/app/src/main/java/com/enqualcomm/support/utils/ProfileManager.java b/app/src/main/java/com/enqualcomm/support/utils/ProfileManager.java
new file mode 100644 (file)
index 0000000..f4cb8ff
--- /dev/null
@@ -0,0 +1,42 @@
+package com.enqualcomm.support.utils;
+
+import android.media.AudioManager;
+
+public class ProfileManager {
+
+    //只声音,无振动
+    public static void ringModel(AudioManager audio) {
+        audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
+        audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
+                AudioManager.VIBRATE_SETTING_OFF);
+        audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
+                AudioManager.VIBRATE_SETTING_OFF);
+    }
+
+    //即有声音也有振动
+    public static void ringAndVibrate(AudioManager audio) {
+        audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
+        audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
+                AudioManager.VIBRATE_SETTING_ON);
+        audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
+                AudioManager.VIBRATE_SETTING_ON);
+    }
+
+    //只能振动
+    public static void vibrate(AudioManager audio) {
+        audio.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
+        audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
+                AudioManager.VIBRATE_SETTING_ON);
+        audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
+                AudioManager.VIBRATE_SETTING_ON);
+    }
+
+    //无声无振动
+    public static void noRingAndVibrate(AudioManager audio) {
+        audio.setRingerMode(AudioManager.RINGER_MODE_SILENT);
+        audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_RINGER,
+                AudioManager.VIBRATE_SETTING_OFF);
+        audio.setVibrateSetting(AudioManager.VIBRATE_TYPE_NOTIFICATION,
+                AudioManager.VIBRATE_SETTING_OFF);
+    }
+}
index 2f3b729..5be328e 100644 (file)
@@ -12,6 +12,7 @@ import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.pm.PackageManager;
 import android.database.Cursor;
+import android.media.AudioManager;
 import android.media.Ringtone;
 import android.media.RingtoneManager;
 import android.net.Uri;
@@ -26,6 +27,7 @@ import android.text.TextUtils;
 import com.enqualcomm.support.Config;
 import com.enqualcomm.support.CoreService;
 import com.enqualcomm.support.IFZDCallback;
+import com.enqualcomm.support.bean.Alarm;
 import com.enqualcomm.support.bean.Contact;
 import com.enqualcomm.support.bean.HealthInfo;
 import com.enqualcomm.support.bean.Runtime;
@@ -41,6 +43,7 @@ import com.enqualcomm.support.utils.CameraUtil;
 import com.enqualcomm.support.utils.Connection;
 import com.enqualcomm.support.utils.ICLogger;
 import com.enqualcomm.support.utils.MD5;
+import com.enqualcomm.support.utils.ProfileManager;
 import com.enqualcomm.support.utils.TimeUtil;
 import com.enqualcomm.support.utils.Util;
 import com.enqualcomm.support.utils.regexUtil;
@@ -417,6 +420,7 @@ public class protocol_fzd {
         TALK,//向对方发起音视频聊天
         UNKNOWN_CMD,
         MESSAGE/*文字消息*/,
+        profile//情景模式
     }
 
     private static HashMap<CMD_TYPE, String> cmdMap = null;
@@ -427,6 +431,7 @@ public class protocol_fzd {
         cmdMap.put(CMD_TYPE.TKQ, "TKQ");
         cmdMap.put(CMD_TYPE.FLOWER, "FLOWER");
         cmdMap.put(CMD_TYPE.WLKEY, "WLKEY");
+        cmdMap.put(CMD_TYPE.profile, "profile");
         cmdMap.put(CMD_TYPE.KEYBRD, "KEYBRD");
         cmdMap.put(CMD_TYPE.FALLDOWN, "FALLDOWN");
         cmdMap.put(CMD_TYPE.SHAKE, "SHAKE");
@@ -1656,20 +1661,117 @@ public class protocol_fzd {
                 handleREMIND(cmd, data, mRuntime);
                 mConnection.DeliverCMDMessageToSystem("REMIND", cmd);
                 break;
+            case profile:
+                ICLogger.d("收到情景模式设置指令");
+                handleProfile(cmd, data, mRuntime);
+                mConnection.DeliverCMDMessageToSystem("profile", cmd);
+                break;
         }
         return ret;
 
     }
 
+
+    //响铃和震动
+    private static final int PROFILE_MODE_RING_AND_VIBRATE = 1;
+    //响铃
+    private static final int PROFILE_MODE_RING = 2;
+    //震动
+    private static final int PROFILE_MODE_VIBRATE = 3;
+    //静音
+    private static final int PROFILE_MODE_SILENT = 4;
+
+    /**
+     * 处理下发的情景模式
+     *
+     * @param cmd
+     * @param data
+     * @param mRuntime
+     */
+    private void handleProfile(String cmd, String data, Runtime mRuntime) {
+        ICLogger.d("profile data == > " + data);
+        //保存一份到设置里
+        handleSettings(cmd, data, mRuntime);
+        //修改情景模式
+        AudioManager audioManager =
+                (AudioManager) mRuntime.getContextProxy()
+                        .context.getSystemService(Context.AUDIO_SERVICE);
+        //对data进行判断
+        try {
+            int type = Integer.parseInt(data);
+            switch (type) {
+                case PROFILE_MODE_RING_AND_VIBRATE:
+                    ProfileManager.ringAndVibrate(audioManager);
+                    break;
+                case PROFILE_MODE_RING:
+                    ProfileManager.ringModel(audioManager);
+                    break;
+                case PROFILE_MODE_VIBRATE:
+                    ProfileManager.vibrate(audioManager);
+                    break;
+                case PROFILE_MODE_SILENT:
+                    ProfileManager.noRingAndVibrate(audioManager);
+                    break;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
     /**
      * 闹钟处理
+     * 平台发送: [XT*YYYYYYYYYYYYYYY*LEN*REMIND,闹钟 1,闹钟 2,闹钟 3]
+     * 实例:[XT*334588000000156*0018*REMIND,08:10-1-1,08:10-1-2, 08:10-1-3-0111110]
+     * 终端回复:
+     * [XT*YYYYYYYYYYYYYYY*LEN*REMIND]
+     * 实例:[XT*334588000000156*0006*REMIND]
+     * 说明:闹铃格式为:
+     * 时间-开关-频率(1:一次;2:每天;3:自定义)
+     * 08:10-1-1:闹钟时间 8:10,打开,响铃一次
+     * 08:10-1-2:闹钟时间 8:10,打开,每天响铃
+     * 08:10-1-3-0111110:闹钟时间 8:10,打开,自定义周一至周五打开 最左边是周日,
+     * 最右边是周六,即 0111110 的顺序是:周日,周一,周二,周三,周四,周五,周 六(1 为打开,0 为关闭),
+     * 其中周一至周五打开闹钟
      *
      * @param cmd
      * @param data
      * @param mRuntime
      */
     private void handleREMIND(String cmd, String data, Runtime mRuntime) {
-
+        //解析数据
+        String[] split = data.split(",");
+        if (split.length != 0) {
+            //说明有闹钟内容,对闹钟内容进行切割设置
+            //遍历
+            ArrayList<Alarm> alarmList = new ArrayList<>();
+            for (String item : split) {
+                String[] itemDetail = item.split("-");
+                String time = itemDetail[0];
+                String state = itemDetail[1];
+                String frequent = itemDetail[2];
+                ICLogger.d("time == > " + time);
+                ICLogger.d("state == > " + state);
+                ICLogger.d("frequent == > " + frequent);
+                String week = null;
+                if ("3".equals(frequent)) {
+                    week = itemDetail[3];
+                }
+                //对week进行转换
+                StringBuilder stringBuilder = new StringBuilder();
+                if (week != null) {
+                    char[] chars = week.toCharArray();
+                    for (int i = 0; i < chars.length; i++) {
+                        if (chars[i] != 0) {
+                            stringBuilder.append(i + 1);
+                        }
+                    }
+                }
+                String weekValue = stringBuilder.toString();
+                ICLogger.d("weekValue ==> " + weekValue);
+                alarmList.add(new Alarm("ST" + time.substring(0, 2) + "." + time.substring(2),
+                        "W" + weekValue, "CON", "1".equals(state) ? "ON" : "OFF", "闹铃"));
+            }
+        }
     }
 
     /**
index c8ca426..9d454b1 100644 (file)
@@ -974,23 +974,23 @@ public class protocol_ic {
         String alarmtime = "";//0900表示早上09:00
         int alarmtype = 1; //1表示吃药提醒 , 2 表示喝水提醒 ,3 表示久坐提醒
         String repeat = "";// 135表示周一周三周五,使用24小时制
-        String[] datalist = cmd.split("@");
-        ArrayList<Alarm> alarmlist = new ArrayList<>();
-        if (datalist.length > 0) {
-            for (int i = 0; i < datalist.length; i++) {
-                String[] cmdarglist = datalist[i].split(",");
+        String[] dataList = cmd.split("@");
+        ArrayList<Alarm> alarmList = new ArrayList<>();
+        if (dataList.length > 0) {
+            for (int i = 0; i < dataList.length; i++) {
+                String[] cmdArgList = dataList[i].split(",");
 
                 if (i == 0) {
-                    if (cmdarglist.length == 9) {
+                    if (cmdArgList.length == 9) {
                         try {
-                            imei = cmdarglist[1];
-                            cmdindex = cmdarglist[2];
-                            all_alarmswitch = Integer.parseInt(cmdarglist[3]);
-                            alarmcount = Integer.parseInt(cmdarglist[4]);
-                            alarmtime = cmdarglist[5];
-                            repeat = cmdarglist[6];
-                            alarmswitch = Integer.parseInt(cmdarglist[7]);
-                            alarmtype = Integer.parseInt(cmdarglist[8]);
+                            imei = cmdArgList[1];
+                            cmdindex = cmdArgList[2];
+                            all_alarmswitch = Integer.parseInt(cmdArgList[3]);
+                            alarmcount = Integer.parseInt(cmdArgList[4]);
+                            alarmtime = cmdArgList[5];
+                            repeat = cmdArgList[6];
+                            alarmswitch = Integer.parseInt(cmdArgList[7]);
+                            alarmtype = Integer.parseInt(cmdArgList[8]);
                             log(new StringBuilder("imei ").append(imei)
                                     .append(", cmdindex ").append(cmdindex)
                                     .append(", allswitch=").append(all_alarmswitch)
@@ -1004,16 +1004,16 @@ public class protocol_ic {
                                     .append(", alarmtype=").append(alarmtype)
                                     .toString()
                             );
-                            alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));
+                            alarmList.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));
                         } catch (Exception e) {
                             ICLogger.e(e.getMessage(), e);
                         }
-                    } else if (cmdarglist.length == 5) {
+                    } else if (cmdArgList.length == 5) {
                         try {
-                            imei = cmdarglist[1];
-                            cmdindex = cmdarglist[2];
-                            all_alarmswitch = Integer.parseInt(cmdarglist[3]);
-                            alarmcount = Integer.parseInt(cmdarglist[4]);
+                            imei = cmdArgList[1];
+                            cmdindex = cmdArgList[2];
+                            all_alarmswitch = Integer.parseInt(cmdArgList[3]);
+                            alarmcount = Integer.parseInt(cmdArgList[4]);
                         } catch (Exception e) {
                             ICLogger.e(e.getMessage(), e);
                         }
@@ -1021,12 +1021,12 @@ public class protocol_ic {
                         log("data len is too small!");
                     }
                 } else {
-                    if (cmdarglist.length == 4) {
+                    if (cmdArgList.length == 4) {
                         try {
-                            alarmtime = cmdarglist[0];
-                            repeat = cmdarglist[1];
-                            alarmswitch = Integer.parseInt(cmdarglist[2]);
-                            alarmtype = Integer.parseInt(cmdarglist[3]);
+                            alarmtime = cmdArgList[0];
+                            repeat = cmdArgList[1];
+                            alarmswitch = Integer.parseInt(cmdArgList[2]);
+                            alarmtype = Integer.parseInt(cmdArgList[3]);
 
                             log(new StringBuilder("set alarmtime ").append(alarmtime)
                                     .append(", relpeat ").append(repeat)
@@ -1035,7 +1035,7 @@ public class protocol_ic {
                                     .toString()
                             );
 
-                            alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));
+                            alarmList.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));
                         } catch (Exception e) {
                             ICLogger.e(e.getMessage(), e);
                         }
@@ -1045,7 +1045,7 @@ public class protocol_ic {
 
                 }
             }//循环获取alarm数据结束
-            runtime.getDbHelper().saveAlarm(alarmlist);
+            runtime.getDbHelper().saveAlarm(alarmList);
 
             //do clean and set alarm things