From: TrillGates Date: Wed, 30 Jun 2021 04:05:25 +0000 (+0800) Subject: add s123 weather aidl. X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=895dcd30738fede21633f7cba729d1ae30f274f4;p=protocol_srv.git add s123 weather aidl. --- diff --git a/app/release/ICSer_V879_2106282242_release.apk b/app/release/ICSer_V880_2106291941_release.apk similarity index 77% rename from app/release/ICSer_V879_2106282242_release.apk rename to app/release/ICSer_V880_2106291941_release.apk index 3495ae5c..86da53d5 100644 Binary files a/app/release/ICSer_V879_2106282242_release.apk and b/app/release/ICSer_V880_2106291941_release.apk differ diff --git a/app/release/output.json b/app/release/output.json index 23a4ee8d..619a3d82 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":879,"versionName":"2106282242","enabled":true,"outputFile":"ICSer_V879_2106282242_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V879_2106282242_release.apk","properties":{}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":880,"versionName":"2106291941","enabled":true,"outputFile":"ICSer_V880_2106291941_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V880_2106291941_release.apk","properties":{}}] \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 60eda8a0..7d1d1485 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -117,6 +117,7 @@ + diff --git a/app/src/main/aidl/com/ic/s123/IS123WeatherCallback.aidl b/app/src/main/aidl/com/ic/s123/IS123WeatherCallback.aidl new file mode 100644 index 00000000..f18dec99 --- /dev/null +++ b/app/src/main/aidl/com/ic/s123/IS123WeatherCallback.aidl @@ -0,0 +1,8 @@ + +package com.ic.s123; + +import com.ic.s123.S123WeatherInfo; + +interface IS123WeatherCallback { + void onWeatherLoaded(in List resultList); +} \ No newline at end of file diff --git a/app/src/main/aidl/com/ic/s123/IS123WeatherService.aidl b/app/src/main/aidl/com/ic/s123/IS123WeatherService.aidl new file mode 100644 index 00000000..18c9d1c9 --- /dev/null +++ b/app/src/main/aidl/com/ic/s123/IS123WeatherService.aidl @@ -0,0 +1,10 @@ + +package com.ic.s123; + +import com.ic.s123.IS123WeatherCallback; + +interface IS123WeatherService { + void registerCallback(in IS123WeatherCallback callback); + void unRegisterCallback(in IS123WeatherCallback callback); + void getWeatherInfo(); +} \ No newline at end of file diff --git a/app/src/main/aidl/com/ic/s123/S123WeatherInfo.aidl b/app/src/main/aidl/com/ic/s123/S123WeatherInfo.aidl new file mode 100644 index 00000000..260aafef --- /dev/null +++ b/app/src/main/aidl/com/ic/s123/S123WeatherInfo.aidl @@ -0,0 +1,4 @@ + +package com.ic.s123; + +parcelable S123WeatherInfo; \ 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 dd603f51..2af7b707 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -70,6 +70,9 @@ import com.ic.fzd.weather.IFZDWeatherService; import com.ic.jni.ICJniUtils; import com.ic.protocols.protocolAPIHelper; import com.ic.protocols.protocol_fzd; +import com.ic.protocols.protocol_s123; +import com.ic.s123.IS123WeatherCallback; +import com.ic.s123.IS123WeatherService; import java.lang.ref.WeakReference; import java.util.ArrayList; @@ -1610,10 +1613,10 @@ public class CoreService extends Service { String action = intent.getAction(); if ("com.ic.action.VIDEO_CALL".equals(action)) { try { - if(Config.protocol_no == Config.PROTOCOL_FZD) { + if (Config.protocol_no == Config.PROTOCOL_FZD) { mFZDService.getBRId(); mFZDService.getContacts(); - }else{ + } else { //need user implement for other protocol } @@ -1623,6 +1626,9 @@ public class CoreService extends Service { return mFZDService; } else if ("com.ic.fzd.action.WEATHER".equals(action)) { return mFZDWeatherService; + } else if ("com.ic.s123.action.WEATHER".equals(action)) { + //S123获取天气 + return mS123WeatherService; } return this.mMessenger.getBinder(); } @@ -1631,6 +1637,30 @@ public class CoreService extends Service { this.connection.close(); } + private final IS123WeatherService.Stub mS123WeatherService = new IS123WeatherService.Stub() { + @Override + public void registerCallback(IS123WeatherCallback callback) { + runtime.registerS123WeatherCallback(callback); + } + + @Override + public void unRegisterCallback(IS123WeatherCallback callback) { + runtime.registerS123WeatherCallback(null); + } + + @Override + public void getWeatherInfo() { + //获取一下数据 + getS123WeatherInfo(); + } + }; + + private void getS123WeatherInfo() { + //获取天气信息 + StringMessage wt = protocol_s123.APTQ(runtime); + connection.send(wt); + } + private final IFZDWeatherService.Stub mFZDWeatherService = new IFZDWeatherService.Stub() { @Override public void registerCallback(IFZDWeatherCallback callback) { 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 acfb629e..162aea62 100644 --- a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java +++ b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java @@ -17,8 +17,11 @@ 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 com.ic.s123.IS123WeatherCallback; +import com.ic.s123.S123WeatherInfo; import java.io.File; +import java.util.List; public class Runtime { private boolean debugflag = false; @@ -228,6 +231,23 @@ public class Runtime { } + public IS123WeatherCallback mS123WeatherCallback = null; + + public void registerS123WeatherCallback(IS123WeatherCallback callback) { + mS123WeatherCallback = callback; + } + + public void updateS123Weather(List S123WeatherInfo) { + if (mS123WeatherCallback != null) { + try { + mS123WeatherCallback.onWeatherLoaded(S123WeatherInfo); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + public enum AlarmType { ALARM_SOS, //sos ALARM_LOWBATTERY, //低电 @@ -991,9 +1011,10 @@ public class Runtime { } //Gator 使用 - public void setmccmnc(String mccmnc){ + public void setmccmnc(String mccmnc) { this.mccAndMnc = mccmnc; } + //实际上是分别设置MCC和MNC public void setMccAndMnc(String MccMnc) { @@ -1249,25 +1270,26 @@ public class Runtime { return mLBSMultiStationData; } - public String getGatorLBSData(){ + public String getGatorLBSData() { // String netstat="46 00 002482 0000DE127"; // MCC(%03d)+MNC(%03d)+LACID(%04X)+CELLID(%07X)+RX LEVEL(%02X), StringBuilder sb = new StringBuilder(); - int mcc=0; - int mnc=0; + int mcc = 0; + int mnc = 0; try { mcc = Integer.parseInt(gpsp.getMCC()); mnc = Integer.parseInt(gpsp.getMNC()); - }catch (Exception e){ - ICLogger.e(e.getMessage(),e); + } catch (Exception e) { + ICLogger.e(e.getMessage(), e); } - sb.append(String.format("%1$03d",mcc)) - .append(String.format("%1$03d",mnc)) - .append(String.format("%1$04X",gpsp.getLAC())) - .append(String.format("%1$07X",gpsp.getGSMStationCID())) - .append(String.format("%1$02X",gpsp.getRxlevel())); + sb.append(String.format("%1$03d", mcc)) + .append(String.format("%1$03d", mnc)) + .append(String.format("%1$04X", gpsp.getLAC())) + .append(String.format("%1$07X", gpsp.getGSMStationCID())) + .append(String.format("%1$02X", gpsp.getRxlevel())); return sb.toString(); } + public String getLBSData() { // 460,0,9520,3671 : LBS基站数据,MCC国家码,460为中国,0:MNC,0为移动,9520:LAC,十进制,3671,CID,十进制 diff --git a/app/src/main/java/com/ic/protocols/protocolAPIHelper.java b/app/src/main/java/com/ic/protocols/protocolAPIHelper.java index dd9734b0..f30a1a4c 100644 --- a/app/src/main/java/com/ic/protocols/protocolAPIHelper.java +++ b/app/src/main/java/com/ic/protocols/protocolAPIHelper.java @@ -8,7 +8,6 @@ import com.enqualcomm.support.bean.StringMessage; import com.enqualcomm.support.utils.AESCipher; import com.enqualcomm.support.utils.Connection; import com.enqualcomm.support.utils.ICLogger; -import com.enqualcomm.support.utils.TimeUtil; import static com.enqualcomm.support.Config.PROTOCOL_ANAN; @@ -871,7 +870,6 @@ public class protocolAPIHelper { } public static int getDefaultServerPort() { - int ret = 8090; switch (Config.protocol_no) { case Config.PROTOCOL_JIAI: @@ -1022,7 +1020,7 @@ public class protocolAPIHelper { ret = null; break; case Config.PROTOCOL_S123: - ret = protocol_ic.APBR(runtime); + ret = protocol_s123.APBR(runtime); break; case Config.PROTOCOL_GATOR: ret = null; diff --git a/app/src/main/java/com/ic/protocols/protocol_s123.java b/app/src/main/java/com/ic/protocols/protocol_s123.java index cc13fdbd..15806992 100644 --- a/app/src/main/java/com/ic/protocols/protocol_s123.java +++ b/app/src/main/java/com/ic/protocols/protocol_s123.java @@ -36,6 +36,7 @@ import com.enqualcomm.support.utils.TimeUtil; import com.enqualcomm.support.utils.Util; import com.enqualcomm.support.utils.VibrateUtil; import com.enqualcomm.support.utils.WakeLockUtil; +import com.ic.s123.S123WeatherInfo; import com.ic.view.msg.MsgMustReadDialog; import java.io.File; @@ -2547,6 +2548,8 @@ public class protocol_s123 { StringBuilder sb = new StringBuilder(); StringBuilder msg = new StringBuilder(); + String City = Util.decodeUnicode2Utf8(cmdlist[22]); + List weatherInfo = new ArrayList<>(); for (int i = 0; i < 3; i++) { String DayTime = cmdlist[1 + i * 7] + " " + cmdlist[2 + i * 7]; String date = "20" + cmdlist[1 + i * 7].trim(); @@ -2571,9 +2574,13 @@ public class protocol_s123 { msg.append("," + temp_high); msg.append("," + temp_low); msg.append(";"); - } - String City = Util.decodeUnicode2Utf8(cmdlist[22]); + //返回数据给UI + S123WeatherInfo itemFirst = new S123WeatherInfo(DayTime, + weather_name, weather_id, temp_current, temp_low, temp_high, City); + //封装数据 + weatherInfo.add(itemFirst); + } ICLogger.i(City + " \n" + sb.toString()); msg.insert(0, City + ";"); @@ -2585,7 +2592,7 @@ public class protocol_s123 { intent.putExtra(Constants.KEY_Weather, weatherstr); ICLogger.i("send Broadcast " + Constants.ACTION_WEATHER_RECEIVED + "\n" + weatherstr + "\n"); CoreService.getInstance().sendBroadcast(intent); - + mRuntime.updateS123Weather(weatherInfo); } else { ICLogger.i(" BPTQ Format error!"); } @@ -2608,19 +2615,20 @@ public class protocol_s123 { */ //在UI逻辑中,只要有处理就都是已经阅读。所以不存在取消阅读的说法。 - return genStringMessage(cmdMap.get(protocol_s123.CMD_TYPE.AP94), new StringBuffer(CMDHEADER).append(cmdMap.get(protocol_s123.CMD_TYPE.AP94)) - .append(CMDSPLIT).append(Runtime.PushtxtMsg_srv_index) - .append(CMDSPLIT).append("1") - .append(CMDEND).toString()); + return genStringMessage(cmdMap.get(protocol_s123.CMD_TYPE.AP94), + new StringBuffer(CMDHEADER).append(cmdMap.get(protocol_s123.CMD_TYPE.AP94)) + .append(CMDSPLIT).append(Runtime.PushtxtMsg_srv_index) + .append(CMDSPLIT).append("1") + .append(CMDEND).toString()); } - public static StringMessage APAT(String id, String cmd) { - return genStringMessage("APAT", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APAT)) - .append(CMDSPLIT).append(id) - .append(CMDSPLIT).append(cmd) - .append(CMDEND).toString()); + return genStringMessage("APAT", + new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APAT)) + .append(CMDSPLIT).append(id) + .append(CMDSPLIT).append(cmd) + .append(CMDEND).toString()); } /*** diff --git a/app/src/main/java/com/ic/s123/S123WeatherInfo.java b/app/src/main/java/com/ic/s123/S123WeatherInfo.java new file mode 100644 index 00000000..45539abf --- /dev/null +++ b/app/src/main/java/com/ic/s123/S123WeatherInfo.java @@ -0,0 +1,133 @@ +package com.ic.s123; + +import android.os.Parcel; +import android.os.Parcelable; + +public class S123WeatherInfo implements Parcelable { + + private String time; + + private String description; + + private String weatherCode; + + private String currentTemp; + + private String highTemp; + private String lowTemp; + private String cityName; + + protected S123WeatherInfo(Parcel in) { + time = in.readString(); + description = in.readString(); + weatherCode = in.readString(); + currentTemp = in.readString(); + highTemp = in.readString(); + lowTemp = in.readString(); + cityName = in.readString(); + } + + public S123WeatherInfo(String time, + String description, + String weatherCode, + String currentTemp, + String highTemp, + String lowTemp, + String cityName) { + this.time = time; + this.description = description; + this.weatherCode = weatherCode; + this.currentTemp = currentTemp; + this.highTemp = highTemp; + this.lowTemp = lowTemp; + this.cityName = cityName; + } + + public S123WeatherInfo() { + + } + + public static final Creator CREATOR = new Creator() { + @Override + public S123WeatherInfo createFromParcel(Parcel in) { + return new S123WeatherInfo(in); + } + + @Override + public S123WeatherInfo[] newArray(int size) { + return new S123WeatherInfo[size]; + } + }; + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getWeatherCode() { + return weatherCode; + } + + public void setWeatherCode(String weatherCode) { + this.weatherCode = weatherCode; + } + + public String getCurrentTemp() { + return currentTemp; + } + + public void setCurrentTemp(String currentTemp) { + this.currentTemp = currentTemp; + } + + public String getHighTemp() { + return highTemp; + } + + public void setHighTemp(String highTemp) { + this.highTemp = highTemp; + } + + public String getLowTemp() { + return lowTemp; + } + + public void setLowTemp(String lowTemp) { + this.lowTemp = lowTemp; + } + + public String getCityName() { + return cityName; + } + + public void setCityName(String cityName) { + this.cityName = cityName; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(time); + dest.writeString(description); + dest.writeString(weatherCode); + dest.writeString(currentTemp); + dest.writeString(highTemp); + dest.writeString(lowTemp); + dest.writeString(cityName); + } +} diff --git a/app/version_code.properties b/app/version_code.properties index 5f2d7c3e..32347219 100644 --- a/app/version_code.properties +++ b/app/version_code.properties @@ -1,5 +1,5 @@ -#Mon Jun 28 22:42:14 CST 2021 +#Tue Jun 29 19:41:46 CST 2021 >>>>>>>=b405d1184f3616d4e894d199cee0eb91613a68db -VERSION_CODE=879 -=\=\=\=\=\=\= +VERSION_CODE=880 <<<<<<<=HEAD +=\=\=\=\=\=\=