1、添加 短信和微聊消息震动,
authorsnickersun <scy@incartech.cn>
Tue, 24 Mar 2020 04:12:19 +0000 (12:12 +0800)
committersnickersun <scy@incartech.cn>
Tue, 24 Mar 2020 04:12:19 +0000 (12:12 +0800)
2、修复 Timer格式造成的 闹铃设置失败。以及 api处理时的逻辑问题。
3、添加IMEI的 全局 配置 SharedReference

app/src/main/java/com/enqualcomm/support/Config.java
app/src/main/java/com/enqualcomm/support/adapter/protocolAPIHelper.java
app/src/main/java/com/enqualcomm/support/bean/Runtime.java
app/src/main/java/com/enqualcomm/support/utils/CustomDialog.java
app/src/main/java/com/enqualcomm/support/utils/ProcessReceiver.java
app/src/main/java/com/enqualcomm/support/utils/SharPreferenceUtil.java
app/src/main/java/com/enqualcomm/support/utils/TimeUtil.java
app/src/main/java/com/enqualcomm/support/utils/Util.java
app/src/main/java/com/enqualcomm/support/utils/VibrateUtil.java [new file with mode: 0644]

index d31186b..fd339d1 100644 (file)
@@ -12,174 +12,14 @@ import org.json.JSONException;
 import org.json.JSONStringer;\r
 \r
 public class Config {\r
-\r
   public static final boolean LOG_TOFILE=true;\r
-  public static final String AUDIO_FORMAT = "1";\r
-  \r
-  private static final String BT = "1@4.0";\r
-  \r
-  public static final String COMPANY = "2";\r
-  \r
-  public static final String HOST = "watch.enqualcomm.com";\r
-  \r
-  public static final String HOST_TEST_SERVER = "121.42.192.174";\r
-  \r
-  public static final String IMAGE_FORMAT = "1";\r
-  \r
-  private static final int LBS = 1;\r
-  \r
-  private static final String LCD = "OLED@240X206";\r
-  \r
-  private static final int NFC = 0;\r
-  \r
-  public static final String OSS_HOST = "121.42.245.59";\r
-  \r
-  public static final int OSS_PORT = 11645;\r
-  \r
-  public static final int PORT = 11445;\r
-  \r
-  private static final int Schedule_powonoff = 0;\r
-  \r
-  public static final String TEST_SERVER_PROP = "1";\r
-  \r
-  private static final int TP = 1;\r
-  \r
-  private static final int T_Card = 0;\r
-  \r
-  private static final int air_pressure = 0;\r
-  \r
-  private static final int alarm = 1;\r
-  \r
   public static int antioff = 0;\r
-  \r
-  private static final int behavior_mode = 0;\r
-  \r
-  private static final int call_vol = 2;\r
-  \r
-  private static final String camera = "1@200";\r
-  \r
-  private static final int check_bill = 1;\r
-  \r
-  private static final int communication_standard = 1;\r
-  \r
-  private static final int connect = 1;\r
-  \r
-  private static final int dampness = 0;\r
-  \r
-  private static final int end_call = 0;\r
-  \r
-  private static final int fight_mode = 0;\r
-  \r
-  private static final int geomagnetic = 0;\r
-  \r
-  private static final int gps = 1;\r
-  \r
-  private static final int gsensor = 1;\r
-  \r
-  private static final int gyroscope = 0;\r
-  \r
   public static int heart_rate = 0;\r
-  \r
   private static String json;\r
-  \r
-  private static final int key_num = 1;\r
-  \r
-  private static final int kindness_num = 0;\r
-  \r
-  private static final String language = "0@0";\r
-  \r
-  private static final int make_call = 1;\r
-  \r
-  private static final String market = "domestic";\r
-  \r
-  private static final String mcc_mnc = "46000";\r
-  \r
-  private static final int monitor = 1;\r
-  \r
-  private static final int monitor_num = 0;\r
-  \r
-  private static final int multi_point = 0;\r
-  \r
-  private static final int nickname = 0;\r
-  \r
-  public static final int oss_file = 0;\r
-  \r
-  private static final int other_contact_num = 30;\r
-  \r
-  private static final int pedometer = 1;\r
-  \r
-  private static final int phonebook = 1;\r
-  \r
-  private static final String platform = "SC9820E";\r
-  \r
-  private static final int product = 2;\r
-  \r
-  private static final String protocol_version = "2.0";\r
-  \r
-  private static final int q_a = 1;\r
-  \r
-  private static final int reboot = 1;\r
-  \r
-  private static final int relation = 0;\r
-  \r
-  private static final int relatives = 1;\r
-  \r
-  private static final int ring_vol = 2;\r
-  \r
-  private static final int search_terminal = 1;\r
-  \r
-  private static final int sedentary_reminder = 0;\r
-  \r
-  private static final int shake = 1;\r
-  \r
-  private static final int shutdown_hand = 1;\r
-  \r
-  private static final int silent = 1;\r
-  \r
-  private static final int sim = 1;\r
-  \r
-  private static final int sleep_monitor = 0;\r
-  \r
-  private static final int sms_forward = 0;\r
-  \r
-  private static final int sndrec = 0;\r
-  \r
-  private static final int sos_num = 0;\r
-  \r
+\r
   public static int sw_release_no = -1;\r
-  \r
-  private static final String sw_version = "eiot_V1.0.0";\r
-  \r
-  private static final int temperature = 0;\r
-  \r
-  private static final int time_set = 0;\r
-  \r
-  private static final int url_download = 1;\r
-  \r
-  public static int value_setting = 1;\r
-  \r
-  private static final int video_jf = 1;\r
-  \r
-  private static final int voice_control = 0;\r
-  \r
-  private static final int voice_notice = 1;\r
-  \r
-  private static final int volume = 0;\r
-  \r
-  private static final int weather = 1;\r
-  \r
-  private static final int wechat = 1;\r
-  \r
-  private static final int wifi = 2;\r
-  \r
-  private static final int wifi_setting = 1;\r
-  \r
-  private static final int wireless_charge = 0;\r
-  \r
-  public static String work_mode = "2@1";\r
-  \r
-  private static final int yunosuuid = 0;\r
 \r
+  public static String work_mode = "2@1";\r
 \r
   public static final String DefaultHost="watch.jiai.pro";\r
   public static final int DefaultPort=8090;\r
@@ -399,11 +239,13 @@ public class Config {
   }\r
 \r
   public static void setIMEI(Context context, String imei){\r
-    SharPreferenceUtil.setPrefString(context,KeyIMEI,imei);\r
+//    SharPreferenceUtil.setPrefString(context,KeyIMEI,imei);\r
+    SharPreferenceUtil.setPrefStringPublic(context,KeyIMEI,imei);\r
   }\r
 \r
   public static String getIMEI(Context context){\r
-    return SharPreferenceUtil.getPrefString(context,KeyIMEI,"");\r
+//    return SharPreferenceUtil.getPrefString(context,KeyIMEI,"");\r
+    return SharPreferenceUtil.getPrefStringPublic(context,KeyIMEI,"");\r
   }\r
 \r
   public static String getProtocolServerHost(Context context){\r
index bb98343..24c957d 100644 (file)
@@ -705,6 +705,7 @@ public class protocolAPIHelper {
     public void handleBP85(String cmd , Connection connection,Runtime runtime){\r
 //        IWBP85,867155030001063,155312,1,1,0235,12,1,1\r
 //        IWBP85,867155030002145,945166,1,0,\r
+//        IWBP85,867155030001064,265960,1,1,1130,,1,1\r
 //        IWBP85,353456789012345,080835,1,3, 0900,135,1,1@0900 ,135,1,2@0900 ,135,1,3#\r
 //353456789012345:IMEI号,设备唯一ID\r
 //080835 :指令流水号\r
@@ -782,10 +783,10 @@ public class protocolAPIHelper {
                     }else{\r
                         log("data len is too small!");\r
                     }\r
-                    runtime.getDbHelper().saveAlarm(alarmlist);\r
 \r
                 }\r
             }//循环获取alarm数据结束\r
+            runtime.getDbHelper().saveAlarm(alarmlist);\r
 \r
             //do clean and set alarm things\r
 \r
index b685f0a..45c8b16 100644 (file)
@@ -8,6 +8,7 @@ import com.enqualcomm.support.utils.ContextProxy;
 import com.enqualcomm.support.utils.DBHelper;\r
 import com.enqualcomm.support.utils.DnsUtil;\r
 import com.enqualcomm.support.utils.ICLogger;\r
+import com.enqualcomm.support.utils.VibrateUtil;\r
 \r
 import java.io.File;\r
 import java.text.ParseException;\r
@@ -26,7 +27,6 @@ public class Runtime {
   \r
   private boolean batterychanging;\r
 \r
-\r
   public String belong;\r
   \r
   private File cacheDir;\r
index ea8fed5..5886f01 100644 (file)
@@ -94,8 +94,8 @@ public class CustomDialog extends Dialog {
       if (this.message != null) {\r
         ((TextView)view.findViewById(R.id.message)).setText(this.message);\r
       } else if (this.contentView != null) {\r
-        ((LinearLayout)view.findViewById(R.id.content)).removeAllViews();\r
-        ((LinearLayout)view.findViewById(R.id.content)).addView(this.contentView, new LayoutParams(-1, -1));\r
+        ((LinearLayout)(view.findViewById(R.id.content))).removeAllViews();\r
+        ((LinearLayout)(view.findViewById(R.id.content))).addView(this.contentView, new LayoutParams(-1, -1));\r
       }\r
 \r
       this.mDialog.setContentView(view);\r
@@ -107,7 +107,7 @@ public class CustomDialog extends Dialog {
         synchronized(CustomDialog.class){}\r
 \r
         Throwable custmExeception;\r
-        boolean var10001;\r
+        boolean ret;\r
         label144: {\r
           try {\r
             if (this.mDialog == null) {\r
@@ -115,7 +115,7 @@ public class CustomDialog extends Dialog {
             }\r
           } catch (Throwable var13) {\r
             custmExeception = var13;\r
-            var10001 = false;\r
+            ret = false;\r
             break label144;\r
           }\r
 \r
@@ -124,7 +124,7 @@ public class CustomDialog extends Dialog {
             return this.mDialog;\r
           } catch (Throwable var12) {\r
             custmExeception = var12;\r
-            var10001 = false;\r
+            ret = false;\r
             break label141;\r
           }\r
         }\r
@@ -136,7 +136,7 @@ public class CustomDialog extends Dialog {
             throw var1;\r
           } catch (Throwable var11) {\r
             custmExeception = var11;\r
-            var10001 = false;\r
+            ret = false;\r
             continue;\r
           }\r
         }\r
index d90fd6b..701a95d 100644 (file)
@@ -114,7 +114,7 @@ public class ProcessReceiver extends BroadcastReceiver {
           var5.addCategory("android.intent.category.DEFAULT");\r
           var5.addFlags(FLAG_ACTIVITY_NEW_TASK);\r
           var5.setComponent(var3);\r
-\r
+          VibrateUtil.getInstance(context).VibrateOn(false);\r
           try {\r
             context.startActivity(var5);\r
           } catch (Exception var4) {\r
@@ -125,6 +125,7 @@ public class ProcessReceiver extends BroadcastReceiver {
       }).setNegativeButton("取消", new DialogInterface.OnClickListener() {\r
         public void onClick(DialogInterface var1, int var2) {\r
           var1.dismiss();\r
+          VibrateUtil.getInstance(context).VibrateOn(false);\r
         }\r
       }).create();\r
       mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
@@ -138,6 +139,7 @@ public class ProcessReceiver extends BroadcastReceiver {
       mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
         public void onClick(DialogInterface var1, int var2) {\r
           var1.dismiss();\r
+          VibrateUtil.getInstance(context).VibrateOn(false);\r
         }\r
       }).create();\r
       mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
@@ -154,6 +156,7 @@ public class ProcessReceiver extends BroadcastReceiver {
           var5.addCategory("android.intent.category.DEFAULT");\r
           var5.addFlags(FLAG_ACTIVITY_NEW_TASK);\r
           var5.setComponent(var3);\r
+          VibrateUtil.getInstance(context).VibrateOn(false);\r
           try {\r
             context.startActivity(var5);\r
           } catch (Exception var4) {\r
@@ -163,6 +166,7 @@ public class ProcessReceiver extends BroadcastReceiver {
       }).setNegativeButton("取消", new DialogInterface.OnClickListener() {\r
         public void onClick(DialogInterface var1, int var2) {\r
           var1.dismiss();\r
+          VibrateUtil.getInstance(context).VibrateOn(false);\r
         }\r
       }).create();\r
       mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
@@ -476,6 +480,7 @@ public class ProcessReceiver extends BroadcastReceiver {
             if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
               this.initMyDialog(paramContext, contact, 1);\r
               this.playNotificationVoice(paramContext);\r
+              VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
             }\r
 \r
             this.screenOn(paramContext);\r
@@ -488,6 +493,7 @@ public class ProcessReceiver extends BroadcastReceiver {
             if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
               this.initMyDialog(paramContext, null, 3);\r
               this.playNotificationVoice(paramContext);\r
+              VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
             }\r
 \r
             this.screenOn(paramContext);\r
@@ -501,6 +507,7 @@ public class ProcessReceiver extends BroadcastReceiver {
           if (contact != null && !isSilence) {\r
             this.initMyDialog(paramContext, contact, 2);\r
             this.playNotificationVoice(paramContext);\r
+            VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
             this.screenOn(paramContext);\r
           }\r
         }\r
index f121c75..0babe22 100644 (file)
@@ -6,6 +6,8 @@ import android.preference.PreferenceManager;
 \r
 public class SharPreferenceUtil {\r
 \r
+\r
+\r
     public static void clearPreference(Context context, SharedPreferences sharedPref) {\r
         sharedPref.edit().clear().commit();\r
     }\r
@@ -53,4 +55,15 @@ public class SharPreferenceUtil {
     public static void setPrefString(Context context, String key, String value) {\r
         PreferenceManager.getDefaultSharedPreferences(context).edit().putString(key, value).commit();\r
     }\r
+\r
+\r
+    public static String getPrefStringPublic(Context context, String key, String value) {\r
+        SharedPreferences sp=context.getSharedPreferences("icprotocolconfig",Context.MODE_WORLD_READABLE);\r
+        return sp.getString(key, value);\r
+    }\r
+    public static void setPrefStringPublic(Context context, String key, String value) {\r
+        SharedPreferences sp=context.getSharedPreferences("icprotocolconfig",Context.MODE_WORLD_WRITEABLE);\r
+        sp.edit().putString(key, value).commit();\r
+    }\r
+\r
 }\r
index c2c3b27..0571dc8 100644 (file)
@@ -15,9 +15,10 @@ public class TimeUtil {
   public static String getLocalTime2(long paramLong) { return (new SimpleDateFormat("MMddHHmmss")).format(new Date(paramLong)); }\r
 \r
   public static String getSystemTime() { return getSystemTime(System.currentTimeMillis()); }\r
-  \r
-  public static String getSystemTime(long paramLong) { return (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date(paramLong)); }\r
-  \r
+\r
+  //此处不能随意改动,影响闹铃设置\r
+  public static String getSystemTime(long paramLong) { return (new SimpleDateFormat("yyyy-MM-dd;HH:mm:ss")).format(new Date(paramLong)); }\r
+\r
   public static String getSystemTime2() { return getSystemTime2(System.currentTimeMillis()); }\r
   \r
   public static String getSystemTime2(long paramLong) { return (new SimpleDateFormat("yyyyMMdd;HHmmss")).format(new Date(paramLong)); }\r
index 392c975..ab7f535 100644 (file)
@@ -131,35 +131,40 @@ public class Util {
   }\r
   /**\r
    *\r
-   *\r
+   * 此函数专门给L02 协议使用 ,解析名字用\r
    * @param unicodestr\r
    * @return\r
    */\r
   public static String decodeUnicode2Utf8(String unicodestr) {\r
-    char aChar;\r
     int len = unicodestr.length();\r
     //由于协议中Unicode 都是不带\\u 字头的,和网络中常见的不同,直接4个字节代表一个unicode字。\r
     //如果不是4的整倍数,则证明字符串格式有误,取消转换\r
     if (len%4==0) {\r
-\r
       //先给每个unicode字符都加上\\u字头,然后再进行转换。\r
       StringBuffer sb = new StringBuffer();\r
       for (int i = 0; i < len; i += 4) {\r
         sb.append("\\u").append(unicodestr.substring(i, i + 4));\r
       }\r
+      return decodeUnicode2Utf8Common(sb.toString());\r
+    }else{\r
+      return null;\r
+    }\r
+\r
+  }\r
 \r
-      String theString = sb.toString();\r
-      len= theString.length();\r
+  public static String decodeUnicode2Utf8Common(String unicodestr) {\r
+    char aChar;\r
+    int len = unicodestr.length();\r
       StringBuffer outBuffer = new StringBuffer(len);\r
       for (int x = 0; x < len; ) {\r
-        aChar = theString.charAt(x++);\r
+        aChar = unicodestr.charAt(x++);\r
         if (aChar == '\\') {\r
-          aChar = theString.charAt(x++);\r
+          aChar = unicodestr.charAt(x++);\r
           if (aChar == 'u') {\r
             // Read the xxxx\r
             int value = 0;\r
             for (int i = 0; i < 4; i++) {\r
-              aChar = theString.charAt(x++);\r
+              aChar = unicodestr.charAt(x++);\r
               switch (aChar) {\r
                 case '0':\r
                 case '1':\r
@@ -211,12 +216,10 @@ public class Util {
           outBuffer.append(aChar);\r
       }\r
       return outBuffer.toString();\r
-    }else{\r
-      return null;\r
-    }\r
+\r
 \r
   }\r
-  public static String getSystemProperties(String prop){\r
+    public static String getSystemProperties(String prop){\r
 \r
     String str ="";\r
     Class clazz = null;\r
diff --git a/app/src/main/java/com/enqualcomm/support/utils/VibrateUtil.java b/app/src/main/java/com/enqualcomm/support/utils/VibrateUtil.java
new file mode 100644 (file)
index 0000000..1638440
--- /dev/null
@@ -0,0 +1,34 @@
+package com.enqualcomm.support.utils;\r
+\r
+import android.content.Context;\r
+import android.os.Vibrator;\r
+\r
+import static android.content.Context.VIBRATOR_SERVICE;\r
+\r
+public class VibrateUtil {\r
+\r
+    private static Context mContext=null;\r
+    public static VibrateUtil getInstance(Context context){\r
+        if (mContext==null)\r
+            mContext=context;\r
+        if (vibrator==null)\r
+            vibrator=(Vibrator)mContext.getSystemService(VIBRATOR_SERVICE);\r
+        vibrateUtil=new VibrateUtil();\r
+        return vibrateUtil;\r
+    }\r
+    private  static Vibrator vibrator = null;\r
+    private static VibrateUtil vibrateUtil=null;\r
+\r
+    private final  long[] patter = {1000, 1000, 1000, 1000}; //1秒开,1秒关,2秒开,50ms关\r
+\r
+    public void VibrateOn(boolean on){\r
+        if(vibrator!=null) {\r
+            if (on)\r
+//                vibrator.vibrate(patter, 0);//一直循环\r
+                vibrator.vibrate(patter, -1);//不循环\r
+            else\r
+                vibrator.cancel();\r
+        }\r
+    }\r
+\r
+}\r