add remote callback.
authorTrillGates <williamtrillgates@gmail.com>
Sat, 20 Feb 2021 06:47:39 +0000 (14:47 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Sat, 20 Feb 2021 06:47:39 +0000 (14:47 +0800)
app/src/main/aidl/com/enqualcomm/support/IFZDService.aidl
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/bean/Runtime.java
app/src/main/java/com/ic/protocols/protocol_fzd.java

index 7cedc63..1409d0f 100644 (file)
@@ -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
index 177a089..ae557ac 100644 (file)
@@ -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
index 44a062e..5c4d90d 100644 (file)
@@ -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 {
index 1a170f9..189aff5 100644 (file)
@@ -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));