1. OPPO keychain SDK接口文档
1.1. 初始化
方法 | OppoKeyChainSdk.init(Context context) |
---|---|
说明 | 调用SDK接口前需保证已初始化,方法内部是内存级别操作,无耗时逻辑,无 需子线程异步,调用即完成初始化 |
返回值 | 无 |
1.2. 添加/更新
方法 | updateItem(Context context, HashMap |
|
---|---|---|
说明 | ·添加或更新Item ·如果Item不存在,执行添加操作;存在则更新 ·必须在非UI线程调用 |
|
参数 | item | ·添加或更新Item集合,item为字典结构 {"key": "xxx", "data":"yyy"},类型为 Map,“key”、“data”字段名固定且必须, 目前只支持“key”和“data”两个字段,key为 item的唯一标识 ·示例: HashMap item = new HashMap(); item.put("key", "test_key1"); item.put("data", "test_data1"); |
listener | ·方法回调 public interface OnResultListener { void onResult(Result result); } Result.code为0表示操作成功,其他失败, code详细定义见下文。 |
|
返回值 | 无 |
1.3. 查询
方法 | queryItem(Context context, HashMap item, OnResultListener listener) | |
---|---|---|
说明 | ·查询Item ·必须在非UI线程调用 |
|
参数 | item | ·需要查询的Item,只填“key”一个字段 ·示例: HashMap item = new HashMap(); item.put("key", "test_key1"); item.put("data", "test_data1"); |
listener | ·方法回调 public interface OnResultListener { void onResult(Result result); } Result.code为0表示操作成功,Result.item为 查询结果,类型为Map。 |
|
返回值 | 无 |
1.4. 删除
方法 | delItem(Context context, String key, OnResultListener listener) | |
---|---|---|
说明 | ·删除Item ·必须在非UI线程调用 |
|
参数 | item | ·需要删除的Item,只填“key”一个字段 ·示例: HashMap item = new HashMap(); item.put("key", "test_key1"); |
listener | ·方法回调 public interface OnResultListener { void onResult(Result result); } Result.code为0表示操作成功,其他失败。 |
|
返回值 | 无 |
1.5. 清除
方法 | clearItems(Context context, OnResultListener listener) | |
---|---|---|
说明 | ·清除调用方应用所有Item ·必须在非UI线程调用 |
|
参数 | listener | ·方法回调 public interface OnResultListener { void onResult(Result result); } Result.code为0表示操作成功,其他失败。 |
返回值 | 无 |
1.6. 判断本机是否支持keychain能力
方法 | boolean isSupportKeyChain(Context context) |
---|---|
说明 | ·判断本机是否支持keychain能力 如果业务调用接口前不做判断,且当前本机安装的移动服务版本较低,则会触发“自动跳转软件商店下载更新最新版本”(需另外依赖implementation "com.heytap.msp.sdk:msp-guide-sdk:1.0.0.1"),业务自 行评估体验 |
返回值 | 支持,true;否则,false |
1.7. Result类说明
public class Result{
//本次接口调用结果
private int code;
//结果描述
private String message;
//执行query时返回查询结果字典,其他调用该字段值是空
private HashMap item;
public void setCode(intcode){
This.code=code;
}
public void setMessage(Stringmessage){
this.message=message;
}
public void setItem(HashMapitem){
this.item=item;
}
public int getCode(){
return code;
}
public String getMessage(){
return message;
}
public HashMa pgetItem(){
return item;
}
@Override
public String toString(){
return "Result{"+
"code = '"+ code +'\''+
", message= '"+ message +'\''+
",item = '"+(item != null?item.toString():null)+'\''
'}';
}
}
1.8. Result.code(目前已定义5个,以最终交付版为准)
cod | message | 说明 |
---|---|---|
0 | success | 调用成功 |
-1 | calling package check failed | 调用方包名与callingUid不匹配 |
-2 | empty items | items参数为空 |
-3 | empty key or data | key或者data参数为空 |
-4 | authfailed | 鉴权失败 |
其他 | IPC底层通信错误 |
1.9. 联调
- 业务App侧集成keychain-sdk
- 在oppo手机安装MspCoreApp
- 调用keychain-sdk接口,callback回调结果