You need to enable JavaScript to run this app.
导航

【C】在线激活授权

最近更新时间2023.03.16 11:40:11

首次发布时间2023.03.16 11:40:11

流程图
在线激活授权
使用步骤
  1. 获取设备id

申请token前请先调用SAMICoreDeviceRegisterInit获取设备id,可通过打印信息bd_did查看具体设备id,此步骤需要联网

int SAMICoreDeviceRegisterInit(void *bd_did)

返回值
成功返回SAMI_OK,失败请查看打印信息。

  1. 调用api申请token

token申请流程参考:如何为设备获取SDK授权Token?

  1. 初始化context

在调用SAMI SDK的创建功能句柄之前,请先通过SAMICoreInitContext设置token和appKey初始化Context,只需要初始化一次。

int SAMICoreInitContext(SAMICoreContextType contextType, void* params)

参数说明

参数名参数类型参数说明
contextTypeSAMICoreContextType待初始化的Context类型,这里选择TokenVerifyMixedContext
paramsSAMICoreTokenVerifyMixedParameter待初始化的参数,详见对应头文件

返回值
成功返回SAMI_OK,失败请查看sami_core_error_code.h定义的错误码。

  1. 调用功能

在初始化Context完毕后,即可正常使用SAMI SDK对应的功能,在调用接口SAMICoreCreateHandleByIdentify创建句柄时,会判断初始化时设置的token等参数是否有效。

  1. 释放Context内存

在使用完SAMI SDK的功能后,需要释放Context的内存,与SAMICoreInitContext成对使用。

int SAMICoreReleaseContext(SAMICoreContextType type)

参数说明

参数名参数类型参数说明
typeSAMICoreContextType待释放的Context类型,这里是TokenVerifyMixedContext

返回值
成功返回SAMI_OK,失败请查看sami_core_error_code.h定义的错误码。

完整demo

获取设备id (设备端):

#include "sami_core.h"

//获取设备id
std::string bd_did = "";
int ret = SAMICoreDeviceRegisterInit(&bd_did);
if(ret != SAMI_OK || bd_did == "") {
    std::cout << "can not register device and get device id!" << std::endl;
    return -1;
}
std::cout << "bd_did:" << bd_did << std::endl;

调用功能 (设备端):

#include "sami_core.h"

//初始化Context
SAMICoreTokenVerifyMixedParameter parameter;
memset(&parameter, 0, sizeof(parameter));
parameter.token = "your token";
parameter.appKey = "your appkey";
parameter.extra = nullptr;
int ret = SAMICoreInitContext(SAMICoreContextType::TokenVerifyMixedContext, &parameter);
if(ret != SAMI_OK) {
    std::cout << "init mixed token context failed" << std::endl;
    return -1;
}

//调用sdk功能接口

//释放Context
SAMICoreReleaseContext(SAMICoreContextType::TokenVerifyMixedContext);