目录

众测功能开发

5G Modem Kit提供众测功能,以下给出使用方法典型示例。

  1. 获取5G Modem Kit查询实例对象。

    private IQueryModem mQueryModem = QueryModemController.getInstance();

  2. 使用实例对象,注册5G Modem Kit的SDK回调接口。

    // 注册5G Modem Kit回调函数,其中IResProcess为查询指标信息回调接口,IConnectProcess为服务连接信息回调接口
    public boolean registerCallback(Context context) {
        return mQueryModem.registerCallback(context, mResProcess, mConnectProcess);
    }
    
    // IResProcess为查询指标信息回调接口
    private IResProcess mResProcess = response -> {
        if (response != null && response.getCode() == 0) {
            // key为请求参数
            String key = response.getQueryParameters();
            // data为该请求响应的值
            String data = response.getValue();
            String content = "";
            if (data != null) {
                content += key + " request result: " + data;
            } else {
                content += key + " request result is null";
            }
            Log.i(TAG, content);
        } else {
            // 当响应为空或错误码不为0时,表示当前请求参数以及请求value无效
            if (response != null) {
                String content = "error code: " + response.getCode() + ",\t" + response.getMsg();
                Log.e(TAG, content);
            } else {
                Log.e(TAG, "response is null");
            }
        }
    };
    
    // IConnectProcess为服务连接信息回调接口
    private IConnectProcess mConnectProcess = response -> {
        if (response == null) {
            Log.e(TAG, "ConnectProcess callback response data is null");
            return;
        }
        String content;
        // 当错误码不为0时,表示存在连接异常
        if (response.getCode() != 0) {
            content = "connect error code: " + response.getCode() + ", error msg: " + response.getMsg();
            Log.e(TAG, content);
        } else {
            content = "connect code: " + response.getCode() + ", msg: " + response.getMsg();
            Log.i(TAG, content);
        }
    };

  3. 注册成功之后,利用实例对象查询Modem参数,使用服务。具体查询参数请参见Constant-values。

    // 查看注册状态
    // 如果没有注册成功,或您的App和底层服务连接断开,查询连接状态返回false,否则返回true
    public boolean getConnectStatus() {
        return mQueryModem.getAidlConnectStatus();
    }
    
    // 参数查询
    public boolean queryModem(String requestName) {
        return mQueryModem.queryModem(requestName);
    }

  4. (可选)不需要使用5G Modem Kit的SDK提供查询Modem参数信息能力时,使用实例对象注销回调。

    // 注销回调,断开和底层服务的连接
    public void unRegisterCallback() {
        mQueryModem.unRegisterCallback();
    }