APP启动时最先调用该接口初始化SDK,推荐在 Application onCreate
中调用(也可以选择在其他代码块调用,前提是保证 init
方法最先被执行)。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
context | Context | 是 | 无 |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无数据返回 |
示例 :
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ZXManager.init(this);
}
}
开发者可以调用该接口控制卓信ID授权弹框,对卓信SDK的授权弹框开关进行控制。如果关闭授权弹框,在ZXManager.checkPermission()
接口调用时,SDK不会自动触发弹框,可以由开发者自行管理卓信ID授权过程。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
enable | boolean | 是 | 是否启用授权弹窗 默认值: true |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无 |
如果开发者设置了 allowPermissionDialog(false)
则可以不用此方法检查权限。默认情况下,建议开发者先通过本方法来检查用户授权状态,确保用户授权后,再使用 ZXManager
的其他API。checkPermission
会检查用户授权状态,如果未曾向用户弹窗授权, 则会弹窗请求授权, 并且根据用户授权选择来回调 onAuthorized
或 onUnauthorized
。如果用户已经弹窗授权过了, 则不会弹窗请求用户授权, 而会根据之前用户授权情况回调(之前已授权则会回调 onAuthorized
,反之回调 onUnauthorized
)。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
activity | Activity | 是 | dialog显示需要 |
listener | PermissionCallback | 是 | 已授权:onAuthorized(); 未授权:onUnauthorized() |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无数据返回 |
示例 :
ZXManager.checkPermission(this, new PermissionCallback() {
@Override
public void onAuthorized() {
Log.d("用户已授权");
}
@Override
public void onUnauthorized() {
Log.e("用户未授权");
}
});
建议开发者先通过 ZXManager.checkPermission(activity, callback)
检查用户授权状态,并且在 callback
的 onAuthorized
回调中再去使用 getZXID
获取卓信ID, onSuccess()
回调中得到卓信ID,否则在 onFailed()
回调方法中会反馈错误原因。
返回的 ZXID 对象中包含 zxid、appAid、venderAid、tags、openid 等相关信息。
其中 appAid、venderAid 需要开发者单独申请开通,并且 appAid、venderAid 需要单独解密(具体使用方式会在开发者申请 AID 服务开通后给到相关信息);
tags 目前返回三类基础设备标签以及四类基础应用标签,其中基础设备标签包含 疑似刷量
、疑似新机
、疑似模拟器
, 且每类分别有高中低三档风险级别;基础应用标签包含 新增
、重复(多开)
、更新
、召回
。
openid 即增补ID,同下面 getOpenID 接口,注:openid 需开通后才能返回。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
listener | ZXIDListener | 是 | 成功: onSuccess(ZXID zxid) 失败: onFailed(int code, String msg) |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无数据返回 |
示例(以 APP 开发者使用为例):
ZXManager.getZXID(new ZXIDListener() {
@Override
public void onSuccess(ZXID zxid) {
String text = "卓信ID: " + zxid.getValue() + '\n' +
"appAid: " +
zxid.getAids().optString("appAid", null) + '\n' +
"venderAid: " +
zxid.getAids().optString("venderAid", null) + '\n' +
// 获取增补ID,同下面 getOpenID 接口返回
"openid: " + zxid.getOpenid() + '\n' +
"tag 基础标签: " + zxid.getTags() + '\n' +
"失效时间: " +
dateFormat.format(zxid.getExpiredTime()) + '\n' +
"SDK版本: " + ZXManager.getVersion();
Log.d("ZXID-onSuccess", "卓信ID:" + text);
}
@Override
public void onFailed(int code, String msg) {
Log.e("ZXID-onFailed", "错误码: " + code + "\n错误信息: " + msg +
"\nsdk版本: " + ZXManager.getVersion());
}
});
开发者可以调用该接口获取当前卓信SDK工作状态,应用设置中的卓信ID开关状态需要和卓信SDK工作状态保持一致。只有当用户在卓信SDK的卓信ID授权框中点击了允许,卓信SDK的工作状态才会为 enable
。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
无 | 无 | 无 | 无 |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
boolean | 是 | 当前SDK工作状态 |
用户在应用设置界面中操作卓信ID开关时,开发者可以调用该接口对卓信SDK的开关状态进行重新设置。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
enable | boolean | 是 | 无 |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无 |
开发者可以调用该接口获取当前卓信SDK版本号。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
无 | 无 | 无 | 无 |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
String | 是 | 当前SDK版本号。 对于生产环境SDK,将返回类似 zxid-2.0.2.xxxx 形式的字符串; 对于沙盒环境SDK,将返回类似 zxid-2.0.2.xxxx-sandbox 形式的字符串。 |
开发者可以调用该接口查询SDK是否控制授权弹框。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
无 | 无 | 无 | 无 |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
boolean | 是 | 当前是否由SDK控制授权弹框 |
开发者可以调用该接口控制SDK的调试模式开关,在调试模式下,SDK会在控制台输出运行日志,帮助开发者排查集成问题。建议在正式上线时,关闭调试模式。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
enable | boolean | 是 | 是否启用授权弹窗 默认值: true |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无 |
开发者可以调用该接口来获取SAID。
注: 具体参数获取方式及认证规则,会在申请 SAID 服务开通后给到相关信息。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
accessKeyId | String | 是 | 通过服务申请后分配的密钥标识 |
signatureMethod | String | 是 | 信息签名方法,目前固定为 HMAC-SHA256 |
signatureNonce | String | 是 | 64 字节以内的随机串,用于防止重放攻击,每次请求必须提供不同的值 |
timestamp | String | 是 | UTC时间戳,从UTC 1970年1月1日0时0分0秒起至现在的总秒数。如 1632634877 |
signature | String | 是 | 信息签名字符串,参考 server/examples/ 中的签名方式。 |
listener | SAIDCallback | 是 | 成功: onSuccess(String said) 失败: onFailed(int code, String msg) |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无数据返回 |
示例(以 APP 开发者使用为例):
ZXManager.getSAID("---填入对应的 accessKeyId ---",
"---填入对应的 signatureMethod ---",
"---填入对应的 signatureNonce ---",
"---填入对应的 timestamp ---",
"---填入对应的 signature ---",
new SAIDCallback() {
@Override
public void onSuccess(String said) {
Log.d("SAID-onSuccess", "SAID: " + said);
}
@Override
public void onFailed(int code, String msg) {
Log.e("SAID-onFailed", "错误码: " + code + "\n错误信息: " + msg); }
});
开发者可以调用该接口来获取 SAID 预授权码 authToken,然后通过 authToken 以 Server to Server 的方式来卓信服务端换取 SAID。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
listener | Callback | 是 | 成功: onSuccess(String authToken) 失败: onFailed(int code, String msg) |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无数据返回 |
示例(以 APP 开发者使用为例):
ZXManager.getAuthToken(new Callback() {
@Override
public void onSuccess(String authToken) {
Log.d("getAuthToken-onSuccess", authToken);
}
@Override
public void onFailed(int code, String msg) {
Log.e("getAuthToken-onFailed", msg);
});
开发者可以调用该接口来监听 ZXID 的变化。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
listener | ZXIDChangedListener | 是 | onChange(ZXID zxid) |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无数据返回 |
示例 :
ZXManager.addZXIDChangedListener(new ZXIDChangedListener() {
@Override
public void onChange (ZXID zxid) {
String text = "卓信ID: " + zxid.getValue() + '\n' +
"appAid: " + zxid.getAids().optString("appAid", null) + '\n' +
"venderAid: " + zxid.getAids().optString("venderAid", null) + '\n' +
"失效时间: " + dateFormat.format(zxid.getExpiredTime()) + '\n' +
"SDK版本: " + ZXManager.getVersion();
Log.d("ZXID-onChange", "卓信ID:" + text);
}
});
开发者获取设备标签(基础设备标签和扩展设备标签),扩展设备标签需单独申请开通,未开通时,得到的标签同 getZXID 中 tags 返回是⼀样的,开发者如未开通扩展标签,⽆需重复调⽤此⽅法,建议直接使⽤ getZXID 中 tags 即可 。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
callback | Callback | 是 | 注册 tags 回调监听 |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无数据返回 |
示例 :
ZXManager.getTag(new Callback() {
@Override
public void onSuccess(String data) {
Log.d(TAG, "ZXID-getTag, " + data);
}
@Override
public void onFailed(int code, String msg) {
Log.d(TAG, "ZXID-getTagError, " + "错误码: " + code + '\n' + "错误信息: " + msg + '\n');
}
});
开发者可以调用该接口来获取增补ID,即 openid(需开通才能使用)。
请求 / Request :
字段 | 类型 | 是否必须 | 说明 |
---|---|---|---|
listener | Callback | 是 | 成功: onSuccess(String openid) 失败: onFailed(int code, String msg) |
响应 / Response :
类型 | 是否必须 | 说明 |
---|---|---|
void | 是 | 无数据返回 |
示例(以 APP 开发者使用为例):
ZXManager.getOpenID(new Callback() {
@Override
public void onSuccess(String openid) {
Log.i("ZXID-OpenID-Suc", "openid:" + openid);
}
@Override
public void onFailed(int code, String msg) {
Log.i(TAG, "ZXID-OpenID-Err, code: " + code + ", message: " + msg);
}
});
以上文档对您是否有帮助?