add sos sms in protocol s123.
authorTrillGates <williamtrillgates@gmail.com>
Wed, 21 Jul 2021 08:13:43 +0000 (16:13 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Wed, 21 Jul 2021 08:13:43 +0000 (16:13 +0800)
13 files changed:
app/release/ICSer_V895_2107201512_release.apk [moved from app/release/ICSer_V894_2107192045_release.apk with 76% similarity]
app/release/output.json
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/ICSmsManager.java
app/src/main/res/layout/msg_dialog_layout.xml
app/src/main/res/values-de-rCH/strings.xml
app/src/main/res/values-fr-rCH/strings.xml
app/src/main/res/values-it-rCH/strings.xml
app/src/main/res/values-ja/strings.xml
app/src/main/res/values-w820dp/strings.xml [deleted file]
app/src/main/res/values-zh-rCN/strings.xml
app/src/main/res/values/strings.xml
app/version_code.properties

similarity index 76%
rename from app/release/ICSer_V894_2107192045_release.apk
rename to app/release/ICSer_V895_2107201512_release.apk
index 105bb90..6585ec3 100644 (file)
Binary files a/app/release/ICSer_V894_2107192045_release.apk and b/app/release/ICSer_V895_2107201512_release.apk differ
index 6433691..657b747 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":894,"versionName":"2107192045","enabled":true,"outputFile":"ICSer_V894_2107192045_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V894_2107192045_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":895,"versionName":"2107201512","enabled":true,"outputFile":"ICSer_V895_2107201512_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V895_2107201512_release.apk","properties":{}}]
\ No newline at end of file
index 06f763d..ff9e0c4 100644 (file)
@@ -34,6 +34,7 @@ import com.enqualcomm.support.bean.SleepInfo;
 import com.enqualcomm.support.bean.SleepRecord;
 import com.enqualcomm.support.bean.StringMessage;
 import com.enqualcomm.support.bean.heartRateStatus;
+import com.enqualcomm.support.provider.ICContentProvider;
 import com.enqualcomm.support.provider.ICDatabaseHelper;
 import com.enqualcomm.support.provider.WarningItemProvider;
 import com.enqualcomm.support.provider.WeTalkMessageProvider;
@@ -78,6 +79,7 @@ import com.ic.s123.IS123WeatherCallback;
 import com.ic.s123.IS123WeatherService;
 
 import java.lang.ref.WeakReference;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
@@ -85,6 +87,7 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
 import chestnut.ui.Toastc;
+import chestnut.utils.PhoneUtils;
 
 import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
 import static com.enqualcomm.support.Constants.ACTION_ALARM_ADD_DATAPOINTS;
@@ -245,17 +248,28 @@ public class CoreService extends Service {
                     setHeartRateDetectAlarm(1);
                 }
                 //add by TrillGates=====start
-                //S123的项目需要加警告信息
-                //保存一份到警告信息中
-                ContentValues warningMsgValues = new ContentValues();
-                //设置数据
-                warningMsgValues.put(ICDatabaseHelper.warning_msg_type, Constants.WARNING_MSG_TYPE_SOS);
-                warningMsgValues.put(ICDatabaseHelper.warning_msg_title,
-                        runtime.getContextProxy().context.getString(R.string.sos_warning_msg_text));
-                warningMsgValues.put(ICDatabaseHelper.warning_msg_has_read, 1);
-                warningMsgValues.put(ICDatabaseHelper.warning_msg_create_time, System.currentTimeMillis());
-                runtime.getContextProxy().getResolver().insert(Uri.parse(WarningItemProvider.WARNING_MSG),
-                        warningMsgValues);
+                if (Config.protocol_no == Config.PROTOCOL_S123) {
+                    //S123的项目需要加警告信息
+                    //切换到子线程中操作
+                    mHandler.post(() -> {
+                        //1.保存一份到警告信息中
+                        ContentValues warningMsgValues = new ContentValues();
+                        //设置数据
+                        warningMsgValues.put(ICDatabaseHelper.warning_msg_type, Constants.WARNING_MSG_TYPE_SOS);
+                        warningMsgValues.put(ICDatabaseHelper.warning_msg_title,
+                                runtime.getContextProxy().context.getString(R.string.sos_warning_msg_text));
+                        warningMsgValues.put(ICDatabaseHelper.warning_msg_has_read, 1);
+                        warningMsgValues.put(ICDatabaseHelper.warning_msg_create_time, System.currentTimeMillis());
+                        ContentResolver resolver = runtime.getContextProxy().getResolver();
+                        resolver.insert(Uri.parse(WarningItemProvider.WARNING_MSG),
+                                warningMsgValues);
+                        //2.读取设置项,判断只是拨打电话,或者只是发送短信,又或者发送短信和拨打电话
+                        //拨打电话走流程
+                        //只要判断是否需要发短信即可
+                        ICLogger.d("start check need SOS SMS...");
+                        checkSendSMS(resolver);
+                    });
+                }
                 //add by TrillGates=====end
                 runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS);
                 //trigger AP10 报警定位
@@ -284,6 +298,62 @@ public class CoreService extends Service {
         }
     };
 
+
+    /**
+     * add by TrillGates.
+     * S123的机器,会根据设置项来判断,SOS的时候是否要发送短信
+     *
+     * @param resolver
+     */
+    private void checkSendSMS(ContentResolver resolver) {
+        Cursor query = resolver.query(Uri.parse(SETTINGS), new String[]{"s_value"}, "s_key=?",
+                new String[]{"sos_notify_type"}, null);
+        if (query != null) {
+            if (query.moveToNext()) {
+                int value = query.getInt(0);
+                ICLogger.d("sos notify value == > " + value);
+                if (value == 2 || value == 3) {
+                    //获取到联系人,如果没有的话就不发送短信了
+                    Cursor sosContactCursor = resolver.query(ICContentProvider.CONTACT_URI,
+                            new String[]{"NUMBER"}, "CATEGORY=?",
+                            new String[]{Contact.CATEGORY_SOS + ""}, null);
+                    List<String> sosNumbers = new ArrayList<>();
+                    if (sosContactCursor != null) {
+                        while (sosContactCursor.moveToNext()) {
+                            String string = sosContactCursor.getString(0);
+                            ICLogger.d("sos number == > " + string);
+                            sosNumbers.add(string);
+                        }
+                        sosContactCursor.close();
+                    }
+                    if (sosNumbers.size() == 0) {
+                        ICLogger.d("no sos number...");
+                        return;
+                    }
+                    //发送短信
+                    //获取短信内容
+                    String string = runtime.getContextProxy().context.getString(R.string.sos_sms_content_text);
+                    //IMEI号和时间,然后格式化
+                    String imei = Config.getIMEI(getApplicationContext());
+                    if (TextUtils.isEmpty(imei)) {
+                        //去获取tel里的IMEI号
+                        imei = PhoneUtils.getIMEI(getApplicationContext());
+                    }
+                    String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(System.currentTimeMillis());
+                    ICLogger.d("imei == > " + imei);
+                    String smsContent = String.format(string, imei, time);
+                    //获取到sos号码
+                    for (String sosNumber : sosNumbers) {
+                        smsManager.sendSMS(sosNumber, smsContent);
+                    }
+                }
+            } else {
+                ICLogger.d("no sos settings value...");
+            }
+            query.close();
+        }
+    }
+
     private TriggerSOSCALLThread mTriggerSOSCALLThread = new TriggerSOSCALLThread();
 
     private class TriggerSOSCALLThread implements Runnable {
index 5570e34..b88fc81 100644 (file)
@@ -291,7 +291,6 @@ public class ICSmsManager extends BroadcastReceiver {
     public void sendSMS(String phoneNumber, String msg) {
         android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();
         Iterator msgit = smsManager.divideMessage(msg).iterator();
-
         while (msgit.hasNext()) {
             String message = (String) msgit.next();
             ICLogger.i("reply message to " + phoneNumber + ", " + message);
index a9c1cb3..bc6a0e7 100644 (file)
@@ -8,7 +8,6 @@
         android:id="@+id/msg_pager"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:background="@drawable/shape_dialog_bg"
         android:overScrollMode="never" />
 
 </android.support.constraint.ConstraintLayout>
\ No newline at end of file
index 0bc7182..d8d9111 100644 (file)
     <string name="close_tips_text">关闭</string>\r
     <string name="low_power_warning_text">低电量报警</string>\r
     <string name="sos_warning_msg_text">SOS紧急报警</string>\r
-    <!--    法语,德语,意大利-->\r
+    <string name="sos_sms_content_text">%s发出了SOS信号。%s</string>\r
 </resources>\r
index 0bc7182..d8d9111 100644 (file)
     <string name="close_tips_text">关闭</string>\r
     <string name="low_power_warning_text">低电量报警</string>\r
     <string name="sos_warning_msg_text">SOS紧急报警</string>\r
-    <!--    法语,德语,意大利-->\r
+    <string name="sos_sms_content_text">%s发出了SOS信号。%s</string>\r
 </resources>\r
index 0bc7182..b619ede 100644 (file)
     <string name="hotline">HotLine</string>\r
 \r
 \r
-\r
     <string name="notification_title">通知消息</string>\r
     <string name="notification_button_str">知道了</string>\r
     <string name="dialog_notification_title">消息提醒</string>\r
     <string name="sedentary_msg">Sedentary reminder !</string>\r
 \r
 \r
-\r
     <string name="en">English</string>\r
     <string name="ja">日本語</string>\r
     <string name="th">ภาษาไทย</string>\r
     <string name="close_tips_text">关闭</string>\r
     <string name="low_power_warning_text">低电量报警</string>\r
     <string name="sos_warning_msg_text">SOS紧急报警</string>\r
-    <!--    法语,德语,意大利-->\r
+    <string name="sos_sms_content_text">%s发出了SOS信号。%s</string>\r
 </resources>\r
index 153f08b..b61ca7c 100644 (file)
     <string name="close_tips_text">シャットダウン</string>
     <string name="low_power_warning_text">低電力アラート</string>
     <string name="sos_warning_msg_text">緊急SOS</string>
+    <string name="sos_sms_content_text">%sからSOSが発信されました。%s</string>
 
 </resources>
diff --git a/app/src/main/res/values-w820dp/strings.xml b/app/src/main/res/values-w820dp/strings.xml
deleted file mode 100644 (file)
index 5d6d0b2..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-    <string name="close_tips_text">关闭</string>
-    <string name="low_power_warning_text">低电量报警</string>
-    <string name="sos_warning_msg_text">SOS紧急报警</string>
-</resources>
\ No newline at end of file
index e116a35..b43a9b6 100644 (file)
     <string name="sport_aim_achieve_tips_text">运动达标!</string>
     <string name="low_power_warning_text">低电量报警</string>
     <string name="sos_warning_msg_text">SOS紧急报警</string>
+    <string name="sos_sms_content_text">%s发出了SOS信号。%s</string>
 </resources>
index 25dc3c7..b93e7b8 100644 (file)
     <string name="close_tips_text">关闭</string>
     <string name="low_power_warning_text">低电量报警</string>
     <string name="sos_warning_msg_text">SOS紧急报警</string>
-    <!--    法语,德语,意大利-->
+
+    <string name="sos_sms_content_text">SOS was sent from "%s". %s</string>
+
 </resources>
index f0b55e5..9cafc0c 100644 (file)
@@ -1,2 +1,2 @@
-#Mon Jul 19 20:45:07 CST 2021\r
-VERSION_CODE=894\r
+#Tue Jul 20 15:12:50 CST 2021\r
+VERSION_CODE=895\r