From ccabfad2d4b95b3f0fd2b1ac9dda706247303b23 Mon Sep 17 00:00:00 2001 From: TrillGates Date: Fri, 16 Apr 2021 14:49:27 +0800 Subject: [PATCH] add fzd weather aidl files. --- app/src/main/AndroidManifest.xml | 1 + .../ic/fzd/weather/IFZDWeatherCallback.aidl | 3 +- .../ic/fzd/weather/IFZDWeatherService.aidl | 8 +- .../com/enqualcomm/support/CoreService.java | 40 ++- .../com/enqualcomm/support/bean/Runtime.java | 10 +- .../com/ic/fzd/weather/FZDWeatherInfo.java | 83 +++--- .../java/com/ic/protocols/protocol_fzd.java | 251 ++++++++++-------- 7 files changed, 237 insertions(+), 159 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bf90595b..50528cc4 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -115,6 +115,7 @@ + diff --git a/app/src/main/aidl/com/ic/fzd/weather/IFZDWeatherCallback.aidl b/app/src/main/aidl/com/ic/fzd/weather/IFZDWeatherCallback.aidl index 56cf468c..95ed6f39 100644 --- a/app/src/main/aidl/com/ic/fzd/weather/IFZDWeatherCallback.aidl +++ b/app/src/main/aidl/com/ic/fzd/weather/IFZDWeatherCallback.aidl @@ -1,6 +1,7 @@ package com.ic.fzd.weather; +import com.ic.fzd.weather.FZDWeatherInfo; interface IFZDWeatherCallback { - void onWeatherInfoLoaded(); + void onWeatherInfoLoaded(in FZDWeatherInfo fzdWeatherInfo); } \ No newline at end of file diff --git a/app/src/main/aidl/com/ic/fzd/weather/IFZDWeatherService.aidl b/app/src/main/aidl/com/ic/fzd/weather/IFZDWeatherService.aidl index 8ceac131..66af755d 100644 --- a/app/src/main/aidl/com/ic/fzd/weather/IFZDWeatherService.aidl +++ b/app/src/main/aidl/com/ic/fzd/weather/IFZDWeatherService.aidl @@ -1,8 +1,10 @@ package com.ic.fzd.weather; +import com.ic.fzd.weather.IFZDWeatherCallback; + interface IFZDWeatherService { - void registerCallback(); - void unRegisterCallback(); - void loadWeahterInfo(); + void registerCallback(IFZDWeatherCallback callback); + void unRegisterCallback(IFZDWeatherCallback callback); + void loadWeatherInfo(); } \ No newline at end of file diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index d1225899..0615649a 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -60,6 +60,8 @@ import com.enqualcomm.support.utils.Util; import com.enqualcomm.support.utils.VibrateUtil; import com.enqualcomm.support.utils.WakeLockUtil; import com.enqualcomm.support.utils.mqttConnection; +import com.ic.fzd.weather.IFZDWeatherCallback; +import com.ic.fzd.weather.IFZDWeatherService; import com.ic.jni.ICJniUtils; import com.ic.protocols.protocolAPIHelper; import com.ic.protocols.protocol_fzd; @@ -1699,6 +1701,8 @@ public class CoreService extends Service { e.printStackTrace(); } return mFZDService; + } else if ("com.ic.fzd.action.WEATHER".equals(action)) { + return mFZDWeatherService; } return this.mMessenger.getBinder(); } @@ -1707,6 +1711,30 @@ public class CoreService extends Service { this.connection.close(); } + private final IFZDWeatherService.Stub mFZDWeatherService = new IFZDWeatherService.Stub() { + @Override + public void registerCallback(IFZDWeatherCallback callback) { + //只有一个接口,设置到runtime里即可 + runtime.setFZDWeatherCallback(callback); + } + + @Override + public void unRegisterCallback(IFZDWeatherCallback callback) { + //只有一个接口,设置到runtime里置空 + runtime.setFZDWeatherCallback(null); + } + + @Override + public void loadWeatherInfo() { + //获取天气信息 + StringMessage wt = protocol_fzd.WT(runtime); + connection.send(wt); + StringMessage wt2 = protocol_fzd.WT2(runtime); + connection.send(wt2); + } + }; + + private final IFZDService.Stub mFZDService = new IFZDService.Stub() { @Override public void registerCallback(IFZDCallback callback) { @@ -1727,7 +1755,7 @@ public class CoreService extends Service { //获取联系人 StringMessage cmdmMembers = protocol_fzd.MEMBERS(); //获取佰锐ID - Deliver.sendLocationMSG(cmdmMembers); + connection.send(cmdmMembers); ICLogger.d("get contacts..."); } @@ -1735,7 +1763,7 @@ public class CoreService extends Service { public void getBRId() { StringMessage cmdBREG = protocol_fzd.BRREG(); //获取佰锐ID - Deliver.sendLocationMSG(cmdBREG); + connection.send(cmdBREG); ICLogger.d("get bairui id.."); } @@ -1744,7 +1772,7 @@ public class CoreService extends Service { public void rejectCallInCome(String remoteId, int type) { //拒绝来电 StringMessage rejectMsg = protocol_fzd.RCALLING(remoteId, type); - Deliver.sendLocationMSG(rejectMsg); + connection.send(rejectMsg); ICLogger.d("reject remote call request..." + remoteId + "..." + type); } @@ -1752,7 +1780,7 @@ public class CoreService extends Service { public void requireCall(int type, int remoteUserId) { //请求与对方通话 StringMessage talk = protocol_fzd.TALK(type, remoteUserId); - Deliver.sendLocationMSG(talk); + connection.send(talk); ICLogger.d("require call == > type is " + type + " remote user id is == > " + remoteUserId); } @@ -1785,14 +1813,14 @@ public class CoreService extends Service { ICLogger.d("unbindFriends == > " + remoteFriendId); StringMessage ppr = protocol_fzd.PPR(remoteFriendId); //解除朋友 - Deliver.sendLocationMSG(ppr); + connection.send(ppr); } @Override public void getFriendsList() { ICLogger.d("get friends list..."); StringMessage ppq = protocol_fzd.PPQ(); - Deliver.sendLocationMSG(ppq); + connection.send(ppq); } }; diff --git a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java index 1db8b58b..a27eb51e 100644 --- a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java +++ b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java @@ -12,6 +12,7 @@ import com.enqualcomm.support.utils.DBHelper; import com.enqualcomm.support.utils.DnsUtil; import com.enqualcomm.support.utils.ICLogger; import com.enqualcomm.support.utils.LanguageUtils; +import com.ic.fzd.weather.IFZDWeatherCallback; import java.io.File; @@ -118,7 +119,7 @@ public class Runtime { } public boolean isServerProtocolConnected() { - // ICLogger.d("ServerHeartBeadReceived == > " + ServerHeartBeadReceived); + // ICLogger.d("ServerHeartBeadReceived == > " + ServerHeartBeadReceived); return ServerHeartBeadReceived; } @@ -206,6 +207,13 @@ public class Runtime { fzdCallbackList.unregister(callback); } + public IFZDWeatherCallback mFZDWeatherCallback = null; + + public void setFZDWeatherCallback(IFZDWeatherCallback callback) { + this.mFZDWeatherCallback = callback; + } + + public enum AlarmType { ALARM_SOS, //sos ALARM_LOWBATTERY, //低电 diff --git a/app/src/main/java/com/ic/fzd/weather/FZDWeatherInfo.java b/app/src/main/java/com/ic/fzd/weather/FZDWeatherInfo.java index 798b95b9..2dae509b 100644 --- a/app/src/main/java/com/ic/fzd/weather/FZDWeatherInfo.java +++ b/app/src/main/java/com/ic/fzd/weather/FZDWeatherInfo.java @@ -8,15 +8,30 @@ import android.os.Parcelable; * 时间,天气描述,天气编号,当前温度,最低温度,最高温度,城市名称,风向,风多少级 */ public class FZDWeatherInfo implements Parcelable { + public FZDWeatherInfo(String weatherText, String code, + String currentTempe, String lowTemp, String highTemp, + String cityName, String windDirection, + String windLev, String dateTime) { + this.weatherText = weatherText; + this.code = code; + this.currentTempe = currentTempe; + this.lowTemp = lowTemp; + this.highTemp = highTemp; + this.cityName = cityName; + this.windDirection = windDirection; + this.windLev = windLev; + this.dateTime = dateTime; + } + private String weatherText; //0表示晴,1表示阴,2表示雨,3表示雪 - private int code; + private String code; //当前温度 - private int currentTempe; + private String currentTempe; // - private int lowTemp; + private String lowTemp; // - private int highTemp; + private String highTemp; //城市名称 private String cityName; //风向 @@ -34,35 +49,35 @@ public class FZDWeatherInfo implements Parcelable { this.weatherText = weatherText; } - public int getCode() { + public String getCode() { return code; } - public void setCode(int code) { + public void setCode(String code) { this.code = code; } - public int getCurrentTempe() { + public String getCurrentTempe() { return currentTempe; } - public void setCurrentTempe(int currentTempe) { + public void setCurrentTempe(String currentTempe) { this.currentTempe = currentTempe; } - public int getLowTemp() { + public String getLowTemp() { return lowTemp; } - public void setLowTemp(int lowTemp) { + public void setLowTemp(String lowTemp) { this.lowTemp = lowTemp; } - public int getHighTemp() { + public String getHighTemp() { return highTemp; } - public void setHighTemp(int highTemp) { + public void setHighTemp(String highTemp) { this.highTemp = highTemp; } @@ -104,16 +119,34 @@ public class FZDWeatherInfo implements Parcelable { protected FZDWeatherInfo(Parcel in) { weatherText = in.readString(); - code = in.readInt(); - currentTempe = in.readInt(); - lowTemp = in.readInt(); - highTemp = in.readInt(); + code = in.readString(); + currentTempe = in.readString(); + lowTemp = in.readString(); + highTemp = in.readString(); cityName = in.readString(); windDirection = in.readString(); windLev = in.readString(); dateTime = in.readString(); } + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(weatherText); + dest.writeString(code); + dest.writeString(currentTempe); + dest.writeString(lowTemp); + dest.writeString(highTemp); + dest.writeString(cityName); + dest.writeString(windDirection); + dest.writeString(windLev); + dest.writeString(dateTime); + } + + @Override + public int describeContents() { + return 0; + } + public static final Creator CREATOR = new Creator() { @Override public FZDWeatherInfo createFromParcel(Parcel in) { @@ -125,22 +158,4 @@ public class FZDWeatherInfo implements Parcelable { return new FZDWeatherInfo[size]; } }; - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(weatherText); - dest.writeInt(code); - dest.writeInt(currentTempe); - dest.writeInt(lowTemp); - dest.writeInt(highTemp); - dest.writeString(cityName); - dest.writeString(windDirection); - dest.writeString(windLev); - dest.writeString(dateTime); - } } diff --git a/app/src/main/java/com/ic/protocols/protocol_fzd.java b/app/src/main/java/com/ic/protocols/protocol_fzd.java index 76b43519..e7f44d46 100644 --- a/app/src/main/java/com/ic/protocols/protocol_fzd.java +++ b/app/src/main/java/com/ic/protocols/protocol_fzd.java @@ -52,6 +52,7 @@ import com.enqualcomm.support.utils.TimeUtil; import com.enqualcomm.support.utils.Util; import com.enqualcomm.support.utils.WifiSupport; import com.enqualcomm.support.utils.regexUtil; +import com.ic.fzd.weather.FZDWeatherInfo; import com.sina.util.dnscache.AppConfigUtil; import java.io.ByteArrayOutputStream; @@ -86,14 +87,14 @@ import static java.lang.Math.abs; */ public class protocol_fzd { private static final String TAG = "ICSrv." + protocol_fzd.class.getSimpleName(); - private static final String PrivKEY = "XMQcHi0lGIdru6xzW7lygBwBT8N0c09P"; - private static final String CMDHEADER = "["; - private static final String CMDCOMPANY = "IC"; - private static final String CMDEND = "]"; - private static final String CMDHEADERSPLIT = "*"; - private static final String CMDSPLIT = ","; + private static final String PRIVATE_KEY = "XMQcHi0lGIdru6xzW7lygBwBT8N0c09P"; + private static final String CMD_HEADER = "["; + private static final String CMD_COMPANY = "IC"; + private static final String CMD_END = "]"; + private static final String CMD_HEADER_SPLIT = "*"; + private static final String CMD_SPLIT = ","; private static final boolean doEncryption = Util.getSystemProperties("persist.sys.encrypt_fzd", "true").equals("true"); - public static final String defaultServerIP = "fzd.xcloudtech.com"; + public static final String defaultServerIP = "api.xcloudtech.com"; public static final int defaultServerPort = 9000; private final SharedPreferences sharedPreferences; private final Handler mHandler; @@ -149,18 +150,18 @@ public class protocol_fzd { StringBuilder sb = new StringBuilder(); if (doEncryption) { String keyHeader = keyheader(cmd, tkLength); - sb.append(CMDHEADER).append(keyHeader).append(header); + sb.append(CMD_HEADER).append(keyHeader).append(header); } else { - sb.append(CMDHEADER).append(header); + sb.append(CMD_HEADER).append(header); } //头部构造好了,添加逗号 - sb.append(CMDSPLIT); + sb.append(CMD_SPLIT); //转成byte bos.write(sb.toString().getBytes()); //追加数据 bos.write(result); //追加结尾 - bos.write(CMDEND.getBytes()); + bos.write(CMD_END.getBytes()); } else { //单聊 cmd = cmdMap.get(CMD_TYPE.TKOne); @@ -169,25 +170,25 @@ public class protocol_fzd { StringBuilder sb = new StringBuilder(); if (doEncryption) { String keyHeader = keyheader(cmd, tkLength); - sb.append(CMDHEADER).append(keyHeader).append(header); + sb.append(CMD_HEADER).append(keyHeader).append(header); } else { - sb.append(CMDHEADER).append(header); + sb.append(CMD_HEADER).append(header); } //头部构造好了,添加逗号 - sb.append(CMDSPLIT); + sb.append(CMD_SPLIT); //添加APP账号 sb.append(remoteNum); - sb.append(CMDSPLIT); + sb.append(CMD_SPLIT); //秒数 ICLogger.d("duration == > " + duration); sb.append(duration); - sb.append(CMDSPLIT); + sb.append(CMD_SPLIT); //加入数据 bos.write(sb.toString().getBytes()); //数据包数据 bos.write(result); //结尾数据 - bos.write(CMDEND.getBytes()); + bos.write(CMD_END.getBytes()); } //发送数据 mConnection.send(cmd, bos.toByteArray()); @@ -308,32 +309,32 @@ public class protocol_fzd { //发送消息 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyMMddHHmmss"); String timeFormat = simpleDateFormat.format(System.currentTimeMillis()); - int cmdLength = cmd.length() + CMDSPLIT.length() + "5".length() + CMDSPLIT.length() - + timeFormat.length() + CMDSPLIT.length() + result.length; + int cmdLength = cmd.length() + CMD_SPLIT.length() + "5".length() + CMD_SPLIT.length() + + timeFormat.length() + CMD_SPLIT.length() + result.length; ICLogger.d("cmdLength == > " + cmdLength); String header = genHeader(cmdLength, cmd); StringBuilder sb = new StringBuilder(); if (doEncryption) { String keyHeader = keyheader(cmd, cmdLength); - sb.append(CMDHEADER).append(keyHeader).append(header); + sb.append(CMD_HEADER).append(keyHeader).append(header); } else { - sb.append(CMDHEADER).append(header); + sb.append(CMD_HEADER).append(header); } //头部构造好了,添加逗号 - sb.append(CMDSPLIT); + sb.append(CMD_SPLIT); //追加x sb.append("5"); - sb.append(CMDSPLIT); + sb.append(CMD_SPLIT); //追加Y sb.append(timeFormat); - sb.append(CMDSPLIT); + sb.append(CMD_SPLIT); //转成byte bos.write(sb.toString().getBytes()); //追加数据Z bos.write(result); //追加结尾 - bos.write(CMDEND.getBytes()); + bos.write(CMD_END.getBytes()); //发送数据 mConnection.send(cmd, bos.toByteArray()); bos.reset(); @@ -547,17 +548,17 @@ public class protocol_fzd { */ public static String isCmdStr(String msg) { String cmd_msgbuf = msg; - int cmdindex = cmd_msgbuf.indexOf(CMDCOMPANY + CMDHEADERSPLIT); + int cmdindex = cmd_msgbuf.indexOf(CMD_COMPANY + CMD_HEADER_SPLIT); if (cmdindex > 0) { //如果开头不是CMDHEADER但是包含CMDHEADER则删除前面的数据 String cmd = cmd_msgbuf.substring(cmdindex); cmd_msgbuf = cmd; } - cmdindex = cmd_msgbuf.indexOf(CMDEND); + cmdindex = cmd_msgbuf.indexOf(CMD_END); if (cmdindex > 0) { String cmd = cmd_msgbuf.substring(0, cmdindex); cmd_msgbuf = cmd; } - cmdindex = cmd_msgbuf.indexOf(CMDSPLIT); + cmdindex = cmd_msgbuf.indexOf(CMD_SPLIT); if (cmdindex > 0) { String cmd = cmd_msgbuf.substring(0, cmdindex); cmd_msgbuf = cmd; @@ -613,7 +614,7 @@ public class protocol_fzd { //by TrillGates ICLogger.d("添加第" + dataPart + "部分数据."); dataPart++; - if (dataStr.startsWith(CMDHEADER + CMDCOMPANY + CMDHEADERSPLIT)) { + if (dataStr.startsWith(CMD_HEADER + CMD_COMPANY + CMD_HEADER_SPLIT)) { ICLogger.d("头部数据,开始接收数据了..."); //命令开始,准备好容器,开始保存数据 dataPart = 1; @@ -623,20 +624,20 @@ public class protocol_fzd { totalByte = byteMerger(totalByte, bytes); } //命令结束,开始处理内容 - if (dataStr.endsWith(CMDEND)) { + if (dataStr.endsWith(CMD_END)) { ICLogger.d("数据接收结束..开始处理数据." + totalByte.length); //处理数据了 //获取指令 String content = new String(totalByte); ICLogger.d("total content == > " + content); //切割出指令 - int cmdIndex = content.indexOf(CMDSPLIT); + int cmdIndex = content.indexOf(CMD_SPLIT); ICLogger.d("cmdIndex == > " + cmdIndex); //指令带数据的 String cmd = null; if (cmdIndex > 0) { //如果开头不是CMDHEADER但是包含CMDHEADER则删除前面的数据 cmd = content.substring(1, cmdIndex); - } else if (content.startsWith(CMDHEADER) && content.endsWith(CMDEND)) { + } else if (content.startsWith(CMD_HEADER) && content.endsWith(CMD_END)) { //纯指令的:[IC*860314001009830*0002*LK],没有逗号的 cmd = content.replace("[", "").replace("]", ""); } @@ -653,8 +654,8 @@ public class protocol_fzd { } else if (key == CMD_TYPE.TKIMG) { handleImage(totalByte); } else { - String data = content.replace(CMDHEADER, "").replace(cmd, "").replace(CMDEND, ""); - if (data.startsWith(CMDSPLIT)) { + String data = content.replace(CMD_HEADER, "").replace(cmd, "").replace(CMD_END, ""); + if (data.startsWith(CMD_SPLIT)) { data = data.substring(1); } handleCmd(key, cmd, data); @@ -860,14 +861,14 @@ public class protocol_fzd { } String imei = CoreService.getInstance().getRuntime().IMEI(); - return new StringBuilder().append(CMDCOMPANY).append(CMDHEADERSPLIT) - .append(imei).append(CMDHEADERSPLIT) - .append(getHexLen(len)).append(CMDHEADERSPLIT).append(cmd).toString(); + return new StringBuilder().append(CMD_COMPANY).append(CMD_HEADER_SPLIT) + .append(imei).append(CMD_HEADER_SPLIT) + .append(getHexLen(len)).append(CMD_HEADER_SPLIT).append(cmd).toString(); } private static String keyheader(String cmd, int len) { String header = genHeader(len, cmd); - String key = MD5.getCMDStringMD5(header + PrivKEY); + String key = MD5.getCMDStringMD5(header + PRIVATE_KEY); return key; } @@ -877,9 +878,9 @@ public class protocol_fzd { String header = genHeader(len, CMD); if (doEncryption) { String keyheader = keyheader(CMD, len); - sb.append(CMDHEADER).append(keyheader).append(header).append(CMDEND); + sb.append(CMD_HEADER).append(keyheader).append(header).append(CMD_END); } else { - sb.append(CMDHEADER).append(header).append(CMDEND); + sb.append(CMD_HEADER).append(header).append(CMD_END); } return genStringMessage(CMD, sb.toString()); } @@ -887,14 +888,14 @@ public class protocol_fzd { public static StringMessage genFZDCMD(String CMD, String data) { StringBuilder sb = new StringBuilder(); - String data_buf = CMD + CMDSPLIT + data; + String data_buf = CMD + CMD_SPLIT + data; int data_buf_len = data_buf.length(); String header = genHeader(data_buf_len, CMD); if (doEncryption) { String keyheader = keyheader(CMD, data_buf_len);//计算header md5值 - sb.append(CMDHEADER).append(keyheader).append(header).append(CMDSPLIT).append(data).append(CMDEND); + sb.append(CMD_HEADER).append(keyheader).append(header).append(CMD_SPLIT).append(data).append(CMD_END); } else { - sb.append(CMDHEADER).append(header).append(CMDSPLIT).append(data).append(CMDEND); + sb.append(CMD_HEADER).append(header).append(CMD_SPLIT).append(data).append(CMD_END); } return genStringMessage(CMD, sb.toString()); } @@ -1031,9 +1032,9 @@ public class protocol_fzd { public static StringMessage KA(Runtime runtime) { StringBuilder sb = new StringBuilder(); String cmd = cmdMap.get(CMD_TYPE.KA); - sb.append(TimeUtil.getSystemDateYYMMDD()).append(CMDSPLIT) - .append(runtime.getTotalStepCount()).append(CMDSPLIT) - .append(runtime.getRolltimes()).append(CMDSPLIT) + sb.append(TimeUtil.getSystemDateYYMMDD()).append(CMD_SPLIT) + .append(runtime.getTotalStepCount()).append(CMD_SPLIT) + .append(runtime.getRolltimes()).append(CMD_SPLIT) .append(runtime.getBattery()); return genFZDCMD(cmd, sb.toString()); } @@ -1074,7 +1075,7 @@ public class protocol_fzd { */ public void handleSILENCETIME2(Connection connection, Runtime runtime, String cmd, String data) { connection.send(SILENCETIME2(runtime)); - String[] silent_items = data.split(CMDSPLIT); + String[] silent_items = data.split(CMD_SPLIT); ArrayList slist = new ArrayList<>(); if (silent_items.length > 0) { for (String si : silent_items) { @@ -1111,7 +1112,7 @@ public class protocol_fzd { * 实例: [XT*1234567890*001D*LGZONE,+8,08:00:00,2016-01-12] */ public void handleLGZONE(Runtime runtime, String data) { - String[] list = data.split(CMDSPLIT); + String[] list = data.split(CMD_SPLIT); if (list.length == 3) { String timeZone = list[0].trim(); String date = list[2].trim(); @@ -1190,15 +1191,15 @@ public class protocol_fzd { */ private static String getLocationData(Runtime runtime) { StringBuilder sb = new StringBuilder(); - sb.append(TimeUtil.getSystemDateYYMMDD()).append(CMDSPLIT) - .append(TimeUtil.getSystemTimeHHmmss()).append(CMDSPLIT) - .append(runtime.getFZDGPSData()).append(CMDSPLIT) - .append(String.format("%03d", abs(runtime.getSignalStrength()))).append(CMDSPLIT) - .append(runtime.getBattery()).append(CMDSPLIT) - .append(runtime.getTotalStepCount()).append(CMDSPLIT) - .append(runtime.getRolltimes()).append(CMDSPLIT) - .append(runtime.getFZDDevStatus(runtime)).append(CMDSPLIT) - .append(runtime.getFZDLBSMultiStationData()).append(CMDSPLIT) + sb.append(TimeUtil.getSystemDateYYMMDD()).append(CMD_SPLIT) + .append(TimeUtil.getSystemTimeHHmmss()).append(CMD_SPLIT) + .append(runtime.getFZDGPSData()).append(CMD_SPLIT) + .append(String.format("%03d", abs(runtime.getSignalStrength()))).append(CMD_SPLIT) + .append(runtime.getBattery()).append(CMD_SPLIT) + .append(runtime.getTotalStepCount()).append(CMD_SPLIT) + .append(runtime.getRolltimes()).append(CMD_SPLIT) + .append(runtime.getFZDDevStatus(runtime)).append(CMD_SPLIT) + .append(runtime.getFZDLBSMultiStationData()).append(CMD_SPLIT) .append(runtime.getFZDWifiData()); return sb.toString(); } @@ -1214,15 +1215,15 @@ public class protocol_fzd { public static StringMessage AL(Runtime runtime) { StringBuilder sb = new StringBuilder(); String cmd = cmdMap.get(CMD_TYPE.AL); - sb.append(TimeUtil.getSystemDateYYMMDD()).append(CMDSPLIT) - .append(TimeUtil.getSystemTimeHHmmss()).append(CMDSPLIT) - .append(runtime.getFZDGPSData()).append(CMDSPLIT) - .append(String.format("%03d", abs(runtime.getSignalStrength()))).append(CMDSPLIT) - .append(runtime.getBattery()).append(CMDSPLIT) - .append(runtime.getTotalStepCount()).append(CMDSPLIT) - .append(runtime.getRolltimes()).append(CMDSPLIT) - .append(runtime.getFZDDevStatus(runtime)).append(CMDSPLIT) - .append(runtime.getFZDLBSMultiStationData()).append(CMDSPLIT) + sb.append(TimeUtil.getSystemDateYYMMDD()).append(CMD_SPLIT) + .append(TimeUtil.getSystemTimeHHmmss()).append(CMD_SPLIT) + .append(runtime.getFZDGPSData()).append(CMD_SPLIT) + .append(String.format("%03d", abs(runtime.getSignalStrength()))).append(CMD_SPLIT) + .append(runtime.getBattery()).append(CMD_SPLIT) + .append(runtime.getTotalStepCount()).append(CMD_SPLIT) + .append(runtime.getRolltimes()).append(CMD_SPLIT) + .append(runtime.getFZDDevStatus(runtime)).append(CMD_SPLIT) + .append(runtime.getFZDLBSMultiStationData()).append(CMD_SPLIT) .append(runtime.getFZDWifiData()); return genFZDCMD(cmd, sb.toString()); @@ -1259,7 +1260,7 @@ public class protocol_fzd { } public static StringMessage blood(int pbl, int pbh) { - String data = pbh + CMDSPLIT + pbl; + String data = pbh + CMD_SPLIT + pbl; return genFZDCMD(cmdMap.get(CMD_TYPE.blood), data); } @@ -1335,7 +1336,7 @@ public class protocol_fzd { connection.send(SOS()); //TODO:保存到fzd的联系人里,类型为SOS if (data != null && data.length() > 0) { - String[] list = data.split(CMDSPLIT); + String[] list = data.split(CMD_SPLIT); ArrayList contactArray = new ArrayList(); ContentValues contentValues = new ContentValues(); contentValues.put(FZDDatabaseHelper.fType, FZDDatabaseHelper.MemberType.SOS); @@ -1405,7 +1406,7 @@ public class protocol_fzd { * 终端回复:[IC*334588000000156*0003*PHL] */ public void handlePHL(Connection connection, Runtime runtime, String cmd, String data) { - String list[] = data.split(CMDSPLIT); + String list[] = data.split(CMD_SPLIT); int listLen = list.length; boolean isPared = ((listLen >= 0) && (listLen % 2 == 0)); if (isPared) { @@ -1767,7 +1768,7 @@ public class protocol_fzd { private void handlerPPQ(String data, Runtime mRuntime) { ICLogger.d("PPQ data ====> " + data); //解析数据,三个为一组 - String[] split = data.split(CMDSPLIT); + String[] split = data.split(CMD_SPLIT); if (split.length % 3 == 0) { //1,2,3,4,5,6,7 for (int i = 0; i < split.length - 2; i += 3) { @@ -1835,7 +1836,7 @@ public class protocol_fzd { //第一种情况[XT*8800000015*000A*PP, 5F204E0,555] //另外一种情况 情况[XT*8800000015*0001*PP,1]/[XT*8800000015*0002*PP,2] // - boolean contains = data.contains(CMDSPLIT); + boolean contains = data.contains(CMD_SPLIT); int result = 0; String friendName = ""; String friendId = ""; @@ -1843,7 +1844,7 @@ public class protocol_fzd { if (contains) { result = 0; //成功的结果 - String[] split = data.split(CMDSPLIT); + String[] split = data.split(CMD_SPLIT); friendId = split[0]; friendName = Util.decodeUnicode2Utf8(split[1]); if (split.length == 3) { @@ -1922,7 +1923,7 @@ public class protocol_fzd { private void handleWIFISET(String cmd, String data, Runtime mRuntime) { ICLogger.d("WIFISET == > " + data); //解析数据 - String[] split = data.split(CMDSPLIT); + String[] split = data.split(CMD_SPLIT); ICLogger.d("length == > " + split.length); Context context = mRuntime.getContextProxy() .context; @@ -1971,7 +1972,7 @@ public class protocol_fzd { */ private void handleBOOTOFF(String cmd, String data, Runtime mRuntime) { //解析数据 - String[] split = data.split(CMDSPLIT); + String[] split = data.split(CMD_SPLIT); if (split.length == 3) { try { //3部分内容 @@ -2187,7 +2188,7 @@ public class protocol_fzd { */ private void handleSettingsInfo(String data) { //对数据进行切割 - String[] split = data.split(CMDSPLIT); + String[] split = data.split(CMD_SPLIT); //长度肯定是双数的,所以-1吧, for (int i = 0; i < split.length - 1; i += 2) { //每2个为一组 @@ -2291,7 +2292,7 @@ public class protocol_fzd { */ private void handleWG(String data) { //先切割,再解码 - String[] split = data.split(CMDSPLIT); + String[] split = data.split(CMD_SPLIT); if (split.length == 4) { String latitude = split[0]; String longitude = split[1]; @@ -2321,22 +2322,34 @@ public class protocol_fzd { //转码 String result = Util.decodeUnicode2Utf8(data); ICLogger.d("data ==> " + result); - String[] split = result.split(CMDSPLIT); + String[] split = result.split(CMD_SPLIT); if (split.length == 7) { - String city = split[0]; - String wtDesc = split[1]; - String temperature = split[2]; - String windDirection = split[3]; - String windLev = split[4]; - String date = split[5]; - String time = split[6]; - ICLogger.d("city == > " + city); - ICLogger.d("wtDesc == > " + wtDesc); - ICLogger.d("temperature == > " + temperature); - ICLogger.d("windDirection == > " + windDirection); - ICLogger.d("windLev == > " + windLev); - ICLogger.d("date == > " + date); - ICLogger.d("time == > " + time); + try { + String city = split[0]; + String wtDesc = split[1]; + String temperature = split[2]; + String windDirection = split[3]; + String windLev = split[4]; + String date = split[5]; + String time = split[6]; + ICLogger.d("city == > " + city); + ICLogger.d("wtDesc == > " + wtDesc); + ICLogger.d("temperature == > " + temperature); + ICLogger.d("windDirection == > " + windDirection); + ICLogger.d("windLev == > " + windLev); + ICLogger.d("date == > " + date); + ICLogger.d("time == > " + time); + FZDWeatherInfo fzdWeatherInfo = new FZDWeatherInfo( + wtDesc, "-1", temperature, temperature, + temperature, city, windDirection, + windLev, date + " " + time + ); + if (mRuntime.mFZDWeatherCallback != null) { + mRuntime.mFZDWeatherCallback.onWeatherInfoLoaded(fzdWeatherInfo); + } + } catch (Exception e) { + e.printStackTrace(); + } } else { ICLogger.d("data -WT2- > split size " + split.length); ICLogger.d("parse data error..." + data); @@ -2345,32 +2358,42 @@ public class protocol_fzd { /** * 处理天气结果,后面得通知到远程 - * //TODO: * 年-月-日,时:分:秒,天气描述,天气编号,当前温度,最低温,最高温,城 市名 * 21-04-07,11:08:10,b6e0d4c6,1,23,-1,40,6DF157335E02 * * @param data */ private void handleWT(String data) { - String[] split = data.split(CMDSPLIT); + String[] split = data.split(CMD_SPLIT); if (split.length == 8) { - //获取数据 - String date = split[0]; - String time = split[1]; - String wtDesc = Util.UrlGB2312ToUTF8(split[2]); - String wtCode = split[3]; - String currentTemp = split[4]; - String lowTemp = split[5]; - String highTemp = split[6]; - String cityName = Util.decodeUnicode2Utf8(split[7]); - ICLogger.d("date == > " + date); - ICLogger.d("time == > " + time); - ICLogger.d("wtDesc == > " + wtDesc); - ICLogger.d("wtCode == > " + wtCode); - ICLogger.d("currentTemp == > " + currentTemp); - ICLogger.d("lowTemp == > " + lowTemp); - ICLogger.d("highTemp == > " + highTemp); - ICLogger.d("cityName == > " + cityName); + try { + //获取数据 + String date = split[0]; + String time = split[1]; + String wtDesc = Util.UrlGB2312ToUTF8(split[2]); + String wtCode = split[3]; + String currentTemp = split[4]; + String lowTemp = split[5]; + String highTemp = split[6]; + String cityName = Util.decodeUnicode2Utf8(split[7]); + ICLogger.d("date == > " + date); + ICLogger.d("time == > " + time); + ICLogger.d("wtDesc == > " + wtDesc); + ICLogger.d("wtCode == > " + wtCode); + ICLogger.d("currentTemp == > " + currentTemp); + ICLogger.d("lowTemp == > " + lowTemp); + ICLogger.d("highTemp == > " + highTemp); + ICLogger.d("cityName == > " + cityName); + FZDWeatherInfo fzdWeatherInfo = new FZDWeatherInfo( + null, wtCode, currentTemp, lowTemp, + highTemp, cityName, null, null, date + " " + time + ); + if (mRuntime.mFZDWeatherCallback != null) { + mRuntime.mFZDWeatherCallback.onWeatherInfoLoaded(fzdWeatherInfo); + } + } catch (Exception e) { + e.printStackTrace(); + } } else { ICLogger.d("data -WT- > split size " + split.length); ICLogger.d("parse data error..." + data); @@ -2471,7 +2494,7 @@ public class protocol_fzd { * @param data */ private void handleCallRequest(Connection mConnection, Runtime mRuntime, String data) { - String[] split = data.split(CMDSPLIT); + String[] split = data.split(CMD_SPLIT); if (split.length == 3) { needResponseCalling = true; //1、准备数据:对方的id,来电类型 @@ -2515,7 +2538,7 @@ public class protocol_fzd { int i = fzdCallback.beginBroadcast(); try { ICLogger.d("data == > " + data); - String[] split = data.split(CMDSPLIT); + String[] split = data.split(CMD_SPLIT); while (i > 0) { i--; if (split.length == 3) { @@ -2541,7 +2564,7 @@ public class protocol_fzd { */ public static StringMessage TALK(int type, int remoteAccount) { //准备数据 - String data = type + CMDSPLIT + remoteAccount + CMDSPLIT; + String data = type + CMD_SPLIT + remoteAccount + CMD_SPLIT; ICLogger.d("request talk == > " + data); return genFZDCMD(cmdMap.get(CMD_TYPE.TALK), data); } @@ -2632,7 +2655,7 @@ public class protocol_fzd { String str = Util.decodeUnicode2Utf8(data); ICLogger.d("members result == > " + str); //对数据进行切割 - String[] split = str.split(CMDSPLIT); + String[] split = str.split(CMD_SPLIT); //每3个为一组 ICLogger.d("split.length = > " + split.length); if (split.length % 3 != 0) { -- 2.17.1