package com.ic.protocols;
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.telephony.TelephonyManager;
+
import com.enqualcomm.support.bean.Runtime;
+import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.utils.Connection;
import com.enqualcomm.support.utils.ICLogger;
+import com.enqualcomm.support.utils.TimeUtil;
import java.util.HashMap;
+import static java.lang.Math.abs;
+
/**
* 安安康养的协议
* 测试服务器域名:pay.yfanan.com:40009
* 测试服务器IP地址:121.43.158.167:40009
*/
+@SuppressLint("MissingPermission")
public class protocol_anan {
+ private static final String CMDEND = "#";
+ private static final String CMDHEADER = "IW";
public static int defaultServerPort = 40009;
public static String defaultServerIp = "pay.yfanan.com";
private final Connection mConnection;
private final Runtime mRuntime;
+ private static final String CMDSPLIT = ",";
public protocol_anan(Connection connect, Runtime runtime) {
mConnection = connect;
mRuntime = runtime;
+ getPhoneStatus();
}
}
+ /*登录*/
+ public static StringMessage AP00(Runtime runTime) {
+ //示例数据:IWAP00102002020001871,898600A7189443197156,9460077731997156#
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP00),
+ new StringBuffer(CMDHEADER).append(
+ cmdMap.get(CMD_TYPE.AP00)
+ ).append(runTime.IMEI())
+ .append(runTime.getIccid())
+ .append(runTime.getImsi())
+ .append(CMDEND).toString());
+ }
+
+ /*LBS+GPS混合定位*/
+ public static StringMessage AP01(Runtime ds) {
+ //示例数据:IWAP01080524A2232.9806N11404.9355E000.1061830323.8706000908000102,
+ // 460,0,9520,3671,
+ // Home|74-DE-2B-44-88-8C|97& Home1|74-DE-2B-44-88-8C|97&Home2|74-DE-2B-44-88-8C|97& Home3|74-DE-2B-44-88-8C|97#
+// IWAP01191230A2232.9807N11404.9355E000.1161320000.0006000910000000,460,00,9520,3671,#
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP01),
+ new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01))
+ .append(TimeUtil.getShortDate())
+ .append(ds.getGPSData())
+ .append(TimeUtil.getShortTime())
+ .append(ds.getGPSHeading())
+ .append(String.format("%03d", abs(ds.getSignalStrength())))
+ .append(ds.getGPSLocationStarNums())
+ .append(ds.getBattery()).append("0")
+ .append(ds.getProtection())
+ .append(ds.getWorkModeStr()).append(CMDSPLIT)
+ .append(ds.getLBSData()).append(CMDSPLIT)
+ .append(ds.getWifiInfo()).append(CMDEND).toString());
+ }
+
+
+ public static StringMessage APHT(Runtime runtime) {
+ //心率,收缩压,舒张压,腕部温度,环境温度,采集点编号
+ //IWAPHT,60,130,85,34.6,26.3,0#
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHT),
+ new StringBuffer(CMDHEADER).append(
+ cmdMap.get(CMD_TYPE.AP00)
+ ).append(CMDSPLIT)
+ .append(runtime.getHRS().getPPG()/*心率*/)
+ .append(CMDSPLIT)
+ .append(runtime.getHRS().getBPL()/*收缩压*/)
+ .append(CMDSPLIT)
+ .append(runtime.getHRS().getBPL()/*舒张压*/)
+ .append(CMDSPLIT)
+ .append(runtime.tempInfo.currentWristTemp/*腕部温度*/)
+ .append(CMDSPLIT)
+ .append(runtime.tempInfo.currentWristTempOut/*环境温度*/)
+ .append(CMDSPLIT)
+ .append("0"/*采集编号*/)
+ .append(CMDEND).toString());
+ }
+
+ public String getPhoneStatus() {
+ TelephonyManager tm = (TelephonyManager) mRuntime
+ .getContextProxy().context.getSystemService(Context.TELEPHONY_SERVICE);
+ String str = "";
+ //noinspection ConstantConditions
+ str += "DeviceId(IMEI) = " + tm.getDeviceId() + "\n";
+ str += "DeviceSoftwareVersion = " + tm.getDeviceSoftwareVersion() + "\n";
+ str += "Line1Number = " + tm.getLine1Number() + "\n";
+ str += "NetworkCountryIso = " + tm.getNetworkCountryIso() + "\n";
+ str += "NetworkOperator = " + tm.getNetworkOperator() + "\n";
+ str += "NetworkOperatorName = " + tm.getNetworkOperatorName() + "\n";
+ str += "NetworkType = " + tm.getNetworkType() + "\n";
+ str += "PhoneType = " + tm.getPhoneType() + "\n";
+ str += "SimCountryIso = " + tm.getSimCountryIso() + "\n";
+ str += "SimOperator = " + tm.getSimOperator() + "\n";
+ str += "SimOperatorName = " + tm.getSimOperatorName() + "\n";
+ str += "SimSerialNumber = " + tm.getSimSerialNumber() + "\n";
+ mRuntime.setIccid(tm.getSimSerialNumber());
+ str += "SimState = " + tm.getSimState() + "\n";
+ str += "SubscriberId(IMSI) = " + tm.getSubscriberId() + "\n";
+ mRuntime.setImsi(tm.getSubscriberId());
+ str += "VoiceMailNumber = " + tm.getVoiceMailNumber();
+ return str;
+ }
+
+ public static StringMessage genStringMessage(String cmdName, String msg) {
+ StringMessage sm = new StringMessage(new String[]{cmdName, msg});
+ sm.refresh(msg);
+ sm.setDate(TimeUtil.getSystemDateYYMMDD(), TimeUtil.getSystemTimeHHmmss());
+ return sm;
+ }
+
//指令解析
public void parseCmd(String cmd_type, byte[] bytes) {
UNKNOWN_CMD,
}
- private static HashMap<CMD_TYPE, String> cmdMap = null;
+ private static HashMap<CMD_TYPE, String> cmdMap;
static {
cmdMap = new HashMap<CMD_TYPE, String>();
/*登录*/
public static StringMessage AP00(Runtime ds) {
//示例数据:IWAP00867155030001063#
- return genStringMessage(cmdMap.get(CMD_TYPE.AP00), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString());
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP00),
+ new StringBuffer(CMDHEADER).append(
+ cmdMap.get(CMD_TYPE.AP00)
+ ).append(ds.IMEI()).append(
+ CMDEND).toString());
}
//处理 登录 BP00
sb.append(cmdindex).append(CMDSPLIT).append(TimeUtil.getSystemTimeyyyyMMddHHmmss()).append(CMDSPLIT).append(txtmsg);
if (Config.custom_name.equals("VitracK")) {
- } else if (Util.getSystemProperties("persist.sys.pushtxt_encode","gb2312").equals("utf-8")) {
- // txtmsg = Util.decodeUnicode2Utf8(txtmsg);
+ } else if (Util.getSystemProperties("persist.sys.pushtxt_encode", "gb2312").equals("utf-8")) {
+ // txtmsg = Util.decodeUnicode2Utf8(txtmsg);
// txtmsg = Util.UrlGB2312ToUTF8(txtmsg);
txtmsg = Util.UrlUTF8ToStrUTF8(txtmsg);
} else {
handleBPTE(cmd, mConnection, mRuntime);
mConnection.DeliverCMDMessageToSystem("APTE", cmd);//通知下面线程状态变化
break;
-
case BPTP:
handleBPTP();
mConnection.DeliverCMDMessageToSystem("APTP", cmd);//通知下面线程状态变化