From: TrillGates Date: Sat, 20 Feb 2021 06:47:39 +0000 (+0800) Subject: add remote callback. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=bb36a8ed30b35c95216fc4bb3347ac85621f1418;p=protocol_srv.git add remote callback. --- diff --git a/app/src/main/aidl/com/enqualcomm/support/IFZDService.aidl b/app/src/main/aidl/com/enqualcomm/support/IFZDService.aidl index 7cedc63c..1409d0f0 100644 --- a/app/src/main/aidl/com/enqualcomm/support/IFZDService.aidl +++ b/app/src/main/aidl/com/enqualcomm/support/IFZDService.aidl @@ -11,6 +11,6 @@ interface IFZDService { void getBRId(); void makeFriends(); void rejectCallInCome(); - void requireCall(in int type); + void requireCall(in int type,in String remoteUserId); void test(); } \ 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 177a0892..ae557ac2 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -1652,16 +1652,21 @@ public class CoreService extends Service { @Override public void registerCallback(IFZDCallback callback) { //接口注册 + runtime.setFZDRemoteCallback(callback); } @Override public void unregisterCallback(IFZDCallback callback) { //取消接口注册 + runtime.removeFZDRemoteCallback(callback); } @Override public void getContracts() { //获取联系人 + StringMessage cmdmMembers = protocol_fzd.MEMBERS(); + //获取佰锐ID + Deliver.sendLocationMSG(cmdmMembers); } @Override @@ -1679,11 +1684,15 @@ public class CoreService extends Service { @Override public void rejectCallInCome() { //拒绝来电 +// protocol_fzd.RCALLING() +// Deliver.sendLocationMSG(); } @Override - public void requireCall(int type) { + public void requireCall(int type, String remoteUserId) { //请求与对方通话 + StringMessage talk = protocol_fzd.TALK(type, remoteUserId); + Deliver.sendLocationMSG(talk); } @Override 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 44a062e6..5c4d90dd 100644 --- a/app/src/main/java/com/enqualcomm/support/bean/Runtime.java +++ b/app/src/main/java/com/enqualcomm/support/bean/Runtime.java @@ -4,6 +4,7 @@ package com.enqualcomm.support.bean; import android.content.Context; import com.enqualcomm.support.Config; +import com.enqualcomm.support.IFZDCallback; import com.enqualcomm.support.adapter.LBSHelper; import com.enqualcomm.support.utils.ContextProxy; import com.enqualcomm.support.utils.DBHelper; @@ -135,7 +136,7 @@ public class Runtime { )) { return true; } - ICLogger.i("不符合条件,跳过 心率检测!" + (Config.noPPGSensor ? "无心率" : "有心率") + " 有佩戴检测?" + ICLogger.i("不符合条件,跳过 心率检测!" + (Config.noPPGSensor ? "无心率" : "有心率") + " 有佩戴检测?" + isNeedAntioff + " 脱落?" + isAntioff); return false; @@ -177,6 +178,29 @@ public class Runtime { public int Anti_off_flag = 0; public int Cut_off_flag = 0; + private IFZDCallback mFZDCallback = null; + + /** + * 这个通知远程UI更新的callback,主要是负责音视频通讯相关的功能 + * 防走丢的协议。 + * + * @param callback + */ + public void setFZDRemoteCallback(IFZDCallback callback) { + this.mFZDCallback = callback; + } + + /** + * 这个通知远程UI更新的callback,主要是负责音视频通讯相关的功能 + * 防走丢的协议。 + * + * @param callback + */ + public void removeFZDRemoteCallback(IFZDCallback callback) { + //如果以后有多个界面需要,可以通过集合的方式管理这些回调 + this.mFZDCallback = null; + } + public enum AlarmType { ALARM_SOS, //sos ALARM_LOWBATTERY, //低电 @@ -1024,7 +1048,7 @@ public class Runtime { String gpsStr = String.format("%04d.%04d%s%05d.%04d%s%03d.%01d", lati, latl, latname, loni, lonl, lonname, speedi, speedl); sb.append("A").append(gpsStr); } else { - String gpsStr = String.format("%s%s%s%s%03d.%01d", latStr.substring(0, 9),latname, lonStr.substring(0, 10), lonname,speedi, speedl); + String gpsStr = String.format("%s%s%s%s%03d.%01d", latStr.substring(0, 9), latname, lonStr.substring(0, 10), lonname, speedi, speedl); sb.append("A").append(gpsStr); } } else { 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 1a170f92..189aff5e 100644 --- a/app/src/main/java/com/ic/protocols/protocol_fzd.java +++ b/app/src/main/java/com/ic/protocols/protocol_fzd.java @@ -813,6 +813,11 @@ public class protocol_fzd { ICLogger.i("handleCmd " + type.name() + " strLen=" + data.length()); if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " recv " + cmd + " " + data); switch (type) { + case BRREG: + ICLogger.i("收到本设备的佰锐Id == > " + data); + //保存一份到sp里 + //通知一callback + break; case MEMBERS: ICLogger.i("收到群成员数据 ==> " + data); //处理一下数据 @@ -968,7 +973,6 @@ public class protocol_fzd { */ private void handleRTalk(Connection mConnection, Runtime mRuntime, String data) { //TODO: - //终端回复: [XT*设备 ID*LEN*RTALK] mConnection.send(genFZDCMD(cmdMap.get(CMD_TYPE.RTALK))); } @@ -981,7 +985,7 @@ public class protocol_fzd { * @param remoteAccount 对方账号 * @return */ - public static StringMessage TALK(String type, String remoteAccount) { + public static StringMessage TALK(int type, String remoteAccount) { //准备数据 StringBuilder sb = new StringBuilder(); sb.append(type); @@ -1056,9 +1060,7 @@ public class protocol_fzd { public boolean handleCmd(CMD_TYPE type, String cmd, byte[] bytes) { - //只有需要传递二级制数据的才需要这个函数,目前只有BP28需要 - boolean ret = true; ICLogger.i("handleCmd " + type.name() + " " + cmd + " bytelen=" + bytes.length); if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " recv " + new String(bytes));