手机侧

更新时间:

接口使用

同步发送数据

命令发送 API

Request request = new Request.Builder()
                    .action(Constant.Action.ACTION_DEVICE_BUSINESS_DATA)
                    .pkgName("com.vivo.health")
                    .data(data)
                    .build();
    Response response = RpcClient.getInstance().callSync(request);
    RpcLogger.i("test test_send response:" + response.getData());
复制代码

异步发送数据

    String data = "业务自定义数据";
    Request request = new Request.Builder()
            .action(Constant.Action.ACTION_DEVICE_BUSINESS_DATA)
            .pkgName("com.vivo.health")
            .data(data)
            .build();
    RpcClient.getInstance().callAsync(request, new Callback() {
        @Override
        public void onResponse(Response response) {
            MockLogger.i("test test_send_async response:" + response.getData());
        }
    });
复制代码

接收数据监听

DeviceRpcManager.getInstance().startDataReceiver(new IDataReceiver() {
            @Override
            public void onReceiveData(Request request) {
                switch (request.getAction()){
                     case Constant.Action.ACTION_DEVICE_BUSINESS_DATA:
                        String data = request.getData();                        //接收端数据处理
                        String result = "填写的response";
                        response = Util.responseData(request, result);
                        DeviceRpcManager.getInstance().onResponse(response);
                        break;
                     default:
                        break;
                }
            @Override
            public void onReceiveNotification(Notification notification) {
                //处理接收的notification事件
            }
        });
复制代码

发送通知数据

通知数据没有返回值。
  • 请求的数据:
String data = "业务自定义数据";
Notification notification = new Notification.Builder()
        .action(Constant.Action.ACTION_DEVICE_BUSINESS_DATA)
        .pkgName("com.vivo.health")
        .data(data)
        .build();
RpcClient.getInstance().notify(notification);
复制代码
  • 返回的数据:通知类数据没有返回结果。

code 描述

code 描述
0 成功
1 目标 app 没有处理对应 ACTION
2 数据解析错误
3 设备命令失败
4 设备未连接
5 请求设备数据超时
6 设备不存在
7 请求目标 app 超时
8 目标 app 不支持 sdk 功能或目标 app 未安装
9 权限拒绝
-1 未知错误

ACTION 列表

  • ACTION_DEVICE_INFO 当前连接的设备信息
  • ACTION_DEVICE_BUSINESS_DATA 发送设备业务数据
  • ACTION_DEVICE_DYNAMIC 设备动态信息更新

接口列表

1.读取运动健康功能版本号

获取运动健康功能版本号,版本号大于等于 2 说明具备当前能力
请求的数据:
int version = DeviceRpcManager.getInstance().getHealthDeviceVersion();
复制代码

2.获取当前连接的设备信息

同步请求的数据
Request request = new Request.Builder()
        .action(Constant.Action.ACTION_DEVICE_INFO)
        .pkgName("com.vivo.health")
        .data(data)
        .build();
Response response = RpcClient.getInstance().callSync(request);
复制代码
返回的数据:
{
    "device":
        {
        "deviceName":"Watch Name XXX2",
        "battery":90, //范围0-100
        "connected":true,
        "freeStorage":200000, //单位byte
        "mac":"11:11:11:11:11:11",
        "productId":2,
        "totalStorage":800000000 //单位byte
        "batteryState":1 //充电状态
        }
}
复制代码

3.给设备发送 Request 消息

同步请求的数据
JSONObject jsonObject = new JSONObject();
jsonObject.put("msg", "业务自定义数据");

Request request = new Request.Builder()
        .action(Constant.Action.ACTION_DEVICE_BUSINESS_DATA)
        .pkgName("com.vivo.health")
        .data(jsonObject.toJSONString())
        .build();
Response response = RpcClient.getInstance().callSync(request);
复制代码
返回的数据:
data:{"code":0}
复制代码

4.设备动态信息更新

数据监听
DeviceRpcManager.getInstance().registerDataReceiver(new IDataReceiver() {
            @Override
            public void onReceiveRequest(Request request) {

            }

            @Override
            public void onReceiveNotification(Notification notification) {
                try {
                    RpcLogger.i("server onReceiveNotification:" + notification);
                    switch (notification.getAction()) {
                        case Constant.Action.ACTION_DEVICE_DYNAMIC:
                            String data = notification.getData();
                            break;
                        default:
                            break;
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        });
复制代码
获取到的 data 数据:在 onReceiveNotification 回调中,得到的 data 是如下格式:
{
    "device":
        {
        "deviceName":"Watch Name XXX2",
        "battery":90, //范围0-100
        "connected":true,
        "freeStorage":200000, //单位byte
        "mac":"11:11:11:11:11:11",
        "productId":2,
        "totalStorage":800000000 //单位byte
        "batteryState":1 //充电状态
        }
}
复制代码
以上内容对您是否有帮助?
  • 毫无帮助
  • 帮助不大
  • 一般
  • 很好
  • 非常好
意见反馈