import android.text.TextUtils;
import com.enqualcomm.support.bean.Contact;
-import com.enqualcomm.support.bean.EventLooperHandlerThread;
import com.enqualcomm.support.bean.ICLocation;
import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.utils.TimeUtil;
import com.enqualcomm.support.utils.Util;
import com.enqualcomm.support.utils.VibrateUtil;
-import com.enqualcomm.support.utils.ftpUtils;
import com.ic.protocols.protocolAPIHelper;
+import com.ic.view.msg.MsgMustReadDialog;
import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import chestnut.utils.PhoneUtils;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
-import static com.enqualcomm.support.Config.upload_logs_via_ftp;
import static com.enqualcomm.support.Constants.ACTION_SMSCMD;
import static com.enqualcomm.support.Constants.ACTION_SMSCMD_Reply;
import static com.enqualcomm.support.Constants.ACTION_SMSCMD_TEST;
String from = param.getString("SMSFrom");
String smsmessage = param.getString("SMSData");
long currenttime = System.currentTimeMillis();
-// if (currenttime - ICSmsManager.preTimeMillis > 30000L) {
ICSmsManager.preTimeMillis = currenttime;
(new Thread(new Runnable() {
public void run() {
SystemClock.sleep(3000L);
ICLogger.i("收到" + from + "短信:" + smsmessage);
-// Toast.makeText(context, "收到" + from + "短信:" + smsmessage, Toast.LENGTH_LONG).show();
- if (handleSMS_CMD(from, smsmessage) == false) {
+ //以下是处理指令的
+ //判断是否要弹窗,强制读取
+ String forceReadMsg = Util.getSystemProperties("persist.sys.forcereadmsg");
+ ICLogger.d("forceReadMsg == > " + forceReadMsg);
+ if (!handleSMS_CMD(from, smsmessage)) {
//说明不是sms命令,提示短信接收。
ContextProxy.sendMsgBroadcast(mContext, smsmessage, 1);
+ } else if (!TextUtils.isEmpty(forceReadMsg)) {
+ MsgMustReadDialog instance = MsgMustReadDialog.getInstance();
+ instance.showMsgDialog();
+ List<String> list = new ArrayList<>();
+ list.add(smsmessage);
+ instance.addData(list);
}
}
})).start();
-// }
}
}
break;
case 0:
sendSMS(cell_number_to_reply, "Upload Failed!");
- cell_number_to_reply="";
+ cell_number_to_reply = "";
if (needshowToast) {
Util.ShowToast(runtime, "Upload cmd Failed!");
- needshowToast=false;
+ needshowToast = false;
}
break;
case 1:
sendSMS(cell_number_to_reply, "Upload success!");
- cell_number_to_reply="";
+ cell_number_to_reply = "";
if (needshowToast) {
Util.ShowToast(runtime, "Upload cmd success!");
- needshowToast=false;
+ needshowToast = false;
}
break;
}
String apn = apnvalues[3];
String user = "";
String password = "";
- if (APNUtil.addVPN(apnName, apn,mcc, mnc, user, password, mContext) == true) {
+ if (APNUtil.addVPN(apnName, apn, mcc, mnc, user, password, mContext) == true) {
sendSMS(phonenumber, "apn add success!");
} else {
sendSMS(phonenumber, "apn add failed!");
String apn = apnvalues[3];
String user = apnvalues[4];
String password = apnvalues[5];
- if (APNUtil.addVPN( apnName, apn,mcc, mnc, user, password, mContext) == true) {
+ if (APNUtil.addVPN(apnName, apn, mcc, mnc, user, password, mContext) == true) {
sendSMS(phonenumber, "apn add success!");
} else {
sendSMS(phonenumber, "apn add failed!");
String apnstr = APNUtil.getCurrentAPN(mContext);
sendSMS(phonenumber, apnstr);
} else if (apnvalues[0].equals("reset")) {
- boolean apnret=APNUtil.resetAPN(mContext);
- sendSMS(phonenumber, "Reset APN to default "+apnret);
+ boolean apnret = APNUtil.resetAPN(mContext);
+ sendSMS(phonenumber, "Reset APN to default " + apnret);
} else {
sendSMS(phonenumber, "apn cmd format error!");
}
} else if (sms.startsWith(ENCRYPED_HEADER + "#monitor#")) {
- mHandler.post(new Runnable() {
- @Override
- public void run() {
- CoreService.getInstance().DevliverStringMessage("StartMonitor", "10");
- }
- });
+ mHandler.post(() -> CoreService.getInstance().DevliverStringMessage("StartMonitor", "10"));
/***
*/
} else if (sms.startsWith(ENCRYPED_HEADER + "#testcmd#=")) {
- String tmp[] = sms.split("=");
- if (tmp.length == 2) {
- String cmd = tmp[1];
- handle_test_cmd(cmd,"");
- }
+ String tmp[] = sms.split("=");
+ if (tmp.length == 2) {
+ String cmd = tmp[1];
+ handle_test_cmd(cmd, "");
+ }
} else {
return false;
}
}
- }else if (cmd.startsWith("BPTE,")) {
+ } else if (cmd.startsWith("BPTE,")) {
String list[] = cmd.split(",");
if (list.length == 2) {
- int freq=0;
- try{
- freq=Integer.parseInt(list[1]);
- }catch (Exception e){
- freq=0;
+ int freq = 0;
+ try {
+ freq = Integer.parseInt(list[1]);
+ } catch (Exception e) {
+ freq = 0;
}
ICLogger.i("收到短信指令:测量体温 " + freq + "分钟一次。");
Config.setTemperatureTestCycle(runtime, freq * 60);
TemperatureUtil.getInstance().doTempTestInThread(FROM_SERVER);
}
- }else if (cmd.startsWith("BPXL")) {
+ } else if (cmd.startsWith("BPXL")) {
- ICLogger.i("收到短信指令:测量心率。");
+ ICLogger.i("收到短信指令:测量心率。");
if (CoreService.getInstance().getRuntime().check_stat_do_ppg_test())
HeartRateManager.getInstance().triggerPPGTest(FROM_SERVER);
import android.os.Environment;
import android.os.Handler;
import android.os.HandlerThread;
+import android.text.TextUtils;
import com.enqualcomm.support.Config;
import com.enqualcomm.support.Constants;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
import java.util.Locale;
import static com.enqualcomm.support.Constants.DIALOG_ACTION;
// 080835 :指令流水号
// XXXXXXXXXXXX : 表示文字内容GB2312编码
-
+ ICLogger.d("cmd == > " + cmd);
+ //这里的切割,如查是云图的后台,会有问题,如果文本内容里有,那么就会切割出错了。所以需要后台去解决这个问题。
String[] cmdlist = cmd.split(",");
+ ICLogger.d("cmdlist length == > " + cmdlist);
if (cmdlist.length == 4) {
String cmdindex = cmdlist[2];
String txtmsg = cmdlist[3];
StringBuilder sb = new StringBuilder();
- runtime.PushtxtMsg_srv_index = cmdindex;//给回复AP94用
+ Runtime.PushtxtMsg_srv_index = cmdindex;//给回复AP94用
sb.append(cmdindex).append(CMDSPLIT).append(TimeUtil.getSystemTimeyyyyMMddHHmmss()).append(CMDSPLIT).append(txtmsg);
if (Config.custom_name.equals("VitracK")) {
runtime.getContextProxy().sendMsgBroadcast(txtmsg, 3);//msgType 3需要回复,0不需要回复
} else {
//判断产品类型,如果是S123的,那么就不发广播了
- //加一个
- ICLogger.d("custom_name == > " + Config.custom_name);
- if ("VitracK".equals(Config.custom_name)) {
- MsgMustReadDialog msgMustReadDialog = new MsgMustReadDialog();
- msgMustReadDialog.showMsgDialog();
+ //读取一个变量值,判断是否弹窗
+ String forceReadMsg = Util.getSystemProperties("persist.sys.forcereadmsg");
+ ICLogger.d("forceReadMsg == > " + forceReadMsg);
+ if (!TextUtils.isEmpty(forceReadMsg)) {
+ MsgMustReadDialog instance = MsgMustReadDialog.getInstance();
+ instance.showMsgDialog();
+ List<String> list = new ArrayList<>();
+ list.add(txtmsg);
+ instance.addData(list);
+ } else {
+ runtime.getContextProxy().sendMsgBroadcast(txtmsg, 0);//msgType 3需要回复,0不需要回复
}
- //runtime.getContextProxy().sendMsgBroadcast(txtmsg, 0);//msgType 3需要回复,0不需要回复
}
//保存到数据库里
runtime.getContextProxy().saveMstToSMSDB(txtmsg);
import com.enqualcomm.support.ICApplication;
import com.enqualcomm.support.R;
+import com.enqualcomm.support.utils.ICLogger;
-import java.util.ArrayList;
import java.util.List;
/**
private MessageAdapter messageAdapter;
private ViewPager msgPage;
+ private MsgMustReadDialog() {
+
+ }
+
+ private static MsgMustReadDialog sInstance;
+
+ public static MsgMustReadDialog getInstance() {
+ if (sInstance == null) {
+ sInstance = new MsgMustReadDialog();
+ }
+ return sInstance;
+ }
+
+ private boolean isShow = false;
+
public void showMsgDialog() {
+ if (isShow) {
+ return;
+ }
+ isShow = true;
Context context = ICApplication.sContext;
windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
//设置属性
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
layoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;
+ //这个是针对S123的屏幕,如果要适配其他,可以动态获取屏幕宽度,高度,再以百分比的形式计算即可。
layoutParams.height = 180;
layoutParams.width = 180;
layoutParams.packageName = context.getPackageName();
//设置适配器
initView(view);
//准备数据
- initData();
//添加到Window里
windowManager.addView(view, layoutParams);
}
- private void initData() {
- List<String> data = new ArrayList<>();
- data.add("这是第一条信息...");
- data.add("这是第二条信息...很长,长到我要写很多废话,你觉得呢!快来吧,收到这个短信就回家吃饭去吧!相信你是最胖的哇!");
- data.add("这是最后一条消息了,看完这条消息就可以按下一页去结束这个dialog了。");
- messageAdapter.setData(data);
+ public void addData(List<String> data) {
+ ICLogger.d("add data..");
+// List<String> data = new ArrayList<>();
+// data.add("这是第一条信息...");
+// data.add("这是第二条信息...很长,长到我要写很多废话,你觉得呢!快来吧,收到这个短信就回家吃饭去吧!相信你是最胖的哇!");
+// data.add("这是最后一条消息了,看完这条消息就可以按下一页去结束这个dialog了。");
+ messageAdapter.updateData(data);
+ //通过观察者的方式,去观察数据库
}
+ private int pageLimit = 10;
+
private void initView(final View view) {
msgPage = (ViewPager) view.findViewById(R.id.msg_pager);
+ msgPage.setOffscreenPageLimit(pageLimit);
//设置适配器
messageAdapter = new MessageAdapter();
msgPage.setAdapter(messageAdapter);
@Override
public void onEndClick() {
windowManager.removeView(view);
+ isShow = false;
}
});
}