gator-优化协议与视频通话应用的数据传输
authork.liang <liangkang648253071@126.com>
Wed, 29 Dec 2021 07:18:32 +0000 (15:18 +0800)
committerk.liang <liangkang648253071@126.com>
Wed, 29 Dec 2021 07:18:32 +0000 (15:18 +0800)
app/release/output.json
app/src/main/aidl/com/enqualcomm/support/IFZDCallback.aidl
app/src/main/aidl/com/enqualcomm/support/IFZDService.aidl
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/ic/protocols/protocolAPIHelper.java
app/src/main/java/com/ic/protocols/protocol_gator.java
app/version_code.properties

index 8e65e8e..7229715 100644 (file)
@@ -1 +1 @@
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1030,"versionName":"2112201457","enabled":true,"outputFile":"ICSer_V1030_2112201457_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V1030_2112201457_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1034,"versionName":"2112291124","enabled":true,"outputFile":"ICSer_V1034_2112291124_release.apk","fullName":"release","baseName":"release"},"path":"ICSer_V1034_2112291124_release.apk","properties":{}}]
\ No newline at end of file
index 724777c..790cd7c 100644 (file)
@@ -14,5 +14,6 @@ interface IFZDCallback {
     void onFriendsListLoaded();
     void onCalling(in String callerID,in String roomName,in String type,in String token);
     void onCallingByUserName(in String userName,in String roomName,in String type,in String token);
+    void onResultServerMsg(in String userName,in String roomName,in String token);
     void onServerReady();
 }
\ No newline at end of file
index d0913e8..37d9837 100644 (file)
@@ -18,4 +18,5 @@ interface IFZDService {
     void makeFriends();
     void unbindFriends(String remoteFriendId);
     void getFriendsList();
+    void takeCallEnd();
 }
\ No newline at end of file
index 0ab0277..ae789b4 100644 (file)
@@ -2004,6 +2004,12 @@ public class CoreService extends Service {
             StringMessage ppq = protocolAPIHelper.getFriendsList(runtime);
             connection.send(ppq);
         }
+
+        @Override
+        public void takeCallEnd() {
+            ICLogger.d("take call end...");
+            protocolAPIHelper.takeCallEnd(runtime);
+        }
     };
 
 }
index a7dabda..c8e3875 100644 (file)
@@ -1523,4 +1523,16 @@ public class protocolAPIHelper {
         }
 
     }
+
+    public static void takeCallEnd(Runtime runtime){
+        if (is_protocol_not_Initialled()) {
+            return;
+        }
+        switch (Config.protocol_no) {
+            case Config.PROTOCOL_GATOR:
+                //设备端主动挂断电话
+                protocol_gator.takeCallEnd(runtime);
+                break;
+        }
+    }
 }
index 0bd5ab5..b0ee666 100644 (file)
@@ -72,7 +72,7 @@ public class protocol_gator {
     public static final String defaultServerIP = "watch.gatorcn.com";
     public static final int defaultServerPort = 27015;
     private boolean hasLogin = false;
-    private boolean isInitiativeVideoCall = false;
+    private static boolean isInitiativeVideoCall = false;
 
     public void getServerReady() {
         ICLogger.d("getServerReady...");
@@ -1632,9 +1632,10 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
                 if(!isInitiativeVideoCall){
                     isInitiativeVideoCall = true;
                     ICLogger.d("app端发起视频通话到手表...");
-                    handleAP50(mRuntime, mConnection, cmd);
+                    handleAP50(true,cmd);
                 }else {
                     ICLogger.d("手表主动发起的通话,service返回的AP50...");
+                    handleAP50(false,cmd);
                 }
                 break;
             case AP51://收到服务器的通话状态消息
@@ -1669,9 +1670,7 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
             if(status.equals("2") || status.equals("3") || status.equals("4")){
                 isInitiativeVideoCall = false;
             }
-            if(!isInitiativeVideoCall) {
-                dispatchAP51(channelId, status);
-            }
+            dispatchAP51(channelId, status);
             //TODO:回复服务器
             ICLogger.d("send broadcast...to video call...");
         } else {
@@ -1718,17 +1717,15 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
      * 17688768961,亲情号
      * tanmingxia0755@gmail.com;357593061269893,频道号
      * 0065ad4f9aed8cf411aaef2e9a5fe4e2b7fIABuMKChZsPEdWZ+5Au/cONiTs7Vd6IoIjqOhXa9yA8Ng5r8vd0NvtUaIgCWg34FMhsCYQQAAQDuyQBhAgDuyQBhAwDuyQBhBADuyQBh
-     * @param mRuntime
-     * @param mConnection
      * @param cmd
      */
-    private void handleAP50(Runtime mRuntime, Connection mConnection, String cmd) {
+    private void handleAP50(boolean isComeIn,String cmd) {
         ICLogger.d("handleAP50 ==> " + cmd);
         String[] split = cmd.split(CMDSPLIT);
         //服务器下发AP50,频道创建的秒为单位的时间戳,亲情号,频道ID,加入频道所需的token凭证
         if (split.length == 5) {
             //调用声网SDK 加入频道的uid参数 手表端暂时固定为2
-            String targetId = split[2];
+            String targetId = split[2]; //gator 亲情号
             String channel = split[3];
             String token = split[4];
             ICLogger.d("targetId ==> " + targetId);
@@ -1736,13 +1733,13 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
             ICLogger.d("token ==> " + token);
             //TODO:回复服务器
             ICLogger.d("send broadcast...to video call...");
-            dispatchAP50(targetId, channel, token);
+            dispatchAP50(isComeIn,targetId, channel, token);
         } else {
             ICLogger.d("parse cmd error == > " + split.length);
         }
     }
 
-    private void dispatchAP50(String userName, String channel, String token) {
+    private void dispatchAP50(boolean isComeIn,String userName, String channel, String token) {
         //收到服务器时间消息的时候认为服务器已经准备好了
         RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
         int i = fzdCallback.beginBroadcast();
@@ -1750,7 +1747,11 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
             while (i > 0) {
                 i--;
                 //1是视频通话,0是语音通话
-                fzdCallback.getBroadcastItem(i).onCallingByUserName(userName, channel, "1", token);
+                if(isComeIn){
+                    fzdCallback.getBroadcastItem(i).onCallingByUserName(userName, channel, "1", token);
+                }else {
+                    fzdCallback.getBroadcastItem(i).onResultServerMsg(userName, channel, token);
+                }
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -1759,6 +1760,10 @@ SOS报警上行WIFI、LBS混合定位数据,步数为255步,电量等级5,数
         }
     }
 
+    public static void takeCallEnd(Runtime runtime){
+        isInitiativeVideoCall = false;
+    }
+
     private void serverReady() {
         //收到服务器时间消息的时候认为服务器已经准备好了
         RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getVideoCallCallback();
index 847e93c..f0aedf0 100644 (file)
@@ -1,2 +1,2 @@
-#Mon Dec 20 14:57:29 CST 2021\r
-VERSION_CODE=1030\r
+#Wed Dec 29 11:24:39 CST 2021\r
+VERSION_CODE=1034\r