流程描述

  • 前提条件:手表已经注册假 push。

1.手机呼叫手表,同时通过自身的推送通道下发通知到手表端。

2.手表端收到通知后,初始化菊风模块并进行登录。

3.登录成功后,等待服务器呼入。

4.收到呼入并接听。

5.通话结束。

6.销毁菊风模块。

注解

1.手机端需要有超时机制来保证在对端收不到来电时能够及时挂掉。

2.手表端收到通知后去登录,登录成功后可能收不到来电,原因是手机端在手表尚未登录前就挂断,此时该通话已变为手表的未接来电,从而不会走呼入流程。

3.注册假 push 后,不需要调用 logout 进行登出,直接销毁菊风模块即可,否则 push 会无效。

主叫方

  1. 调用菊风接口呼叫被叫方(手表);
  2. 手表厂商通过自己 push 唤起手表。

被叫方

被叫方(手表)进行以下操作:

1. 增加创建 JCPush 模块

JCPush push = JCPush.create(client);

2. 登录成功后向服务器注册个假的push,主要是让服务器认为此用户不是离线状态,这样主叫呼叫就不会被服务器直接拒绝

JCPushTemplate pushInfo = new JCPushTemplate();
pushInfo.initWithMiPush(context.getPackageName(), "随意输入");
JCManager.getInstance().push.addPushInfo(pushInfo);
pushInfo.initWithCall(JCPushTemplate.XIAOMI, JCManager.getInstance().client.getUserId(), "呼叫", "0");
JCManager.getInstance().push.addPushInfo(pushInfo);
//设置模式,登录成功后、呼叫前或者收到来电前都可以设置
JCManager.shared.call.mediaConfig = JCCall.MediaConfig.generateByMode(JCCall.MediaConfig.MODE_INTELLINGENT_HARDWARE_SMALL);
  1. 手表收到厂家自身 push 后调起菊风模块进行初始化、登录等操作,登录成功后就会收到来电;
  2. 通话结束后可以 destroy 菊风的模块。