申请token前请先调用SAMICoreDeviceRegisterInit
获取设备id,可通过打印信息bd_did查看具体设备id,此步骤需要联网
int SAMICoreDeviceRegisterInit(void *bd_did)
返回值
成功返回SAMI_OK,失败请查看打印信息。
token申请流程参考:如何为设备获取SDK授权Token?
在调用SAMI SDK的创建功能句柄之前,请先通过SAMICoreInitContext
设置token和appKey初始化Context,只需要初始化一次。
int SAMICoreInitContext(SAMICoreContextType contextType, void* params)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
contextType | SAMICoreContextType | 待初始化的Context类型,这里选择TokenVerifyMixedContext |
params | SAMICoreTokenVerifyMixedParameter | 待初始化的参数,详见对应头文件 |
返回值
成功返回SAMI_OK,失败请查看sami_core_error_code.h
定义的错误码。
在初始化Context完毕后,即可正常使用SAMI SDK对应的功能,在调用接口SAMICoreCreateHandleByIdentify
创建句柄时,会判断初始化时设置的token等参数是否有效。
在使用完SAMI SDK的功能后,需要释放Context的内存,与SAMICoreInitContext
成对使用。
int SAMICoreReleaseContext(SAMICoreContextType type)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
type | SAMICoreContextType | 待释放的Context类型,这里是TokenVerifyMixedContext |
返回值
成功返回SAMI_OK,失败请查看sami_core_error_code.h
定义的错误码。
获取设备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(¶meter, 0, sizeof(parameter)); parameter.token = "your token"; parameter.appKey = "your appkey"; parameter.extra = nullptr; int ret = SAMICoreInitContext(SAMICoreContextType::TokenVerifyMixedContext, ¶meter); if(ret != SAMI_OK) { std::cout << "init mixed token context failed" << std::endl; return -1; } //调用sdk功能接口 //释放Context SAMICoreReleaseContext(SAMICoreContextType::TokenVerifyMixedContext);