# Android Java 接入

7C云网络验证提供了Android Java对接,方便 Android Java 开发者接入。

# 接入须知

# 对接视频

Android Java对接视频 (opens new window)

# 获取方式

下载地址: 或者加群675107742在群文件下载SDK,有问题也可在此群交流。

# 使用方式

先将下载到的安卓java.rar文件解压出来,将HttpUtil.java QCYSDK.java AndroidManifest.xml复制到你的项目中就可以使用了

# 卡密登录例子

  //AndroidManifest.xml 添加如下权限
  //<uses-permission android:name="android.permission.INTERNET"/>
  //<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  //<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  //<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
  //填入你的appKey  appSecret
  QCYSDK qcysdk = new QCYSDK("CTbGa7o25zST4xAmHi", "H8BNIyZRkJBEzwmyYXMIVsQzuCqMgANx", true, true);//初始化
  qcysdk.setCard("dyhcda2ePRFrTve4Y7YNmC");//设置卡密
  qcysdk.setDeviceId(Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID));//设置设备号
  new Thread(()->{
      qcysdk.tokenPath = "token.txt";//保存登录成功令牌的路径 /sdcard/token.txt
      //读取写入需要有权限 请放开应用读写权限
      String token = qcysdk.readFile(qcysdk.tokenPath);//读取上次登录成功的token
      qcysdk.cardLogout(token);//进行退出登录
      Resp resp = qcysdk.cardLogin();//卡密登录
      if (resp.code == 0){
          System.out.println("到期时间:"+resp.result.expires);
          /*******************下面开始你的代码*******************/


      }else {
          System.out.println("登录失败"+resp.code + resp.message);
          System.exit(0);
      }
  }).start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 用户登录例子

//AndroidManifest.xml 添加如下权限
  //<uses-permission android:name="android.permission.INTERNET"/>
  //<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  //<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
  //<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
  //填入你的appKey  appSecret
  QCYSDK qcysdk = new QCYSDK("CTbGa7o25zST4xAmHi", "H8BNIyZRkJBEzwmyYXMIVsQzuCqMgANx", true, true);//初始化
  qcysdk.setUser("zhangsan", "123456");//设置用户名,密码
  qcysdk.setDeviceId(Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID));//设置设备号
  new Thread(()->{
      qcysdk.tokenPath = "token.txt";//保存登录成功令牌的路径 /sdcard/token.txt
      //读取写入需要有权限 请放开应用读写权限
      String token = qcysdk.readFile(qcysdk.tokenPath);//读取上次登录成功的token
      qcysdk.userLogout(token);//进行退出登录
      Resp resp = qcysdk.userLogin();//用户登录登录
      if (resp.code == 0){
          System.out.println("到期时间:"+resp.result.expires);
          /*******************下面开始你的代码*******************/


      }else {
          System.out.println("登录失败"+resp.code + resp.message);
          System.exit(0);
      }
  }).start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

# 初始化

# 初始化SDK

# 语法

QCYSDK qcysdk = new QCYSDK(appKey, appSecret, isLoginAgain, autoHeartbeat);
1

# 参数

参数名 必传 类型 参数说明
appKey string 软件的appKey
appSecret string 软件的appSecret
autoHeartbeat boolean true开启心跳,false关闭心跳
isLoginAgain boolean true开启断线重登,false关闭断线重登

# 卡密登录

注意

调用此接口前需调用 qcysdk.SetCard(card) 初始化卡密 登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。

# 语法

qcysdk.setDeviceId(Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID));//设置设备号
qcysdk.SetCard(card);
Resp resp = qcysdk.cardLogin();
System.out.println("code:"+resp.code+ " message:"+resp.message);
System.out.println("到期时间:"+resp.result.expires);
1
2
3
4
5

# 参数

# 返回值

Resp类,例:{ result: { cardType: '月卡', token: '8wr17hGcTs5lVVJ0liL97d6McNEaDTKk', expires: '2021-09-17 01:49:38', expires_ts: 1631814578, config: '', server_time: 1624110506 }, message: 'ok', code: 0 }

# 卡密退出登录

# 语法

Resp resp = qcysdk.cardLogout();
1

# 参数

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 卡密解绑设备

注意

请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。

# 语法

Resp resp = qcysdk.cardUnbindDevice();
1

# 参数

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 卡密绑定设备上解绑

注意

请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。

# 语法

Resp resp = qcysdk.cardUnbindDeviceBybindDevice();
1

# 参数

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 卡密设置解绑密码

说明

请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。 该密码用于绑定设备丢失或者其它原因导致无法在老设备登录时解绑设备。

# 语法

Resp res = qcysdk.setCardUnbindPassword(password);
1

# 参数

参数名 必传 类型 参数说明
password string 解绑密码(6-10位数字和字母组合的字符串)

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 卡密通过密码解绑设备

说明

请先进入开发者后台软件管理页面,配置软件开启设备绑定且可解除绑定。 该接口用于绑定设备丢失或者其它原因导致无法在老设备登录时,通过解绑密码解绑设备。

# 语法

Resp resp = qcysdk.cardUnbindDeviceByPassword(password);
1
参数名 必传 类型 参数说明
password string 解绑密码(6-10位数字和字母组合的字符串)

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 卡密充值(以卡充卡)

# 语法

Resp resp = qcysdk.cardRecharge(card, useCard);
1

# 参数

参数名 必传 类型 参数说明
card string 被充值的卡密(长度不超过45位)
useCard string 充值使用的卡密(长度不超过45位)

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 用户注册(通过卡密)

# 语法

Resp res = qcysdk.userRegister(username, password, card);
1

# 参数

参数名 必传 类型 参数说明
username string 用户名(长度不能超过20位)
password string 用户密码(长度6-30位)
card string 注册使用的卡密(长度不超过45位)

# 返回值

Resp类,例:{"code": 0, "message": "ok"}

# 用户登录

注意

调用此接口前需调用 qcysdk.setUser(username, password) 初始化用户账号密码 登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。

# 语法

qcysdk.setUser(username, password);
Resp resp = qcysdk.userLogin();
1
2

# 参数

# 返回值

Resp类,例:{ result: { cardType: '月卡', token: '8wr17hGcTs5lVVJ0liL97d6McNEaDTKk', expires: '2021-09-17 01:49:38', expires_ts: 1631814578, config: '', server_time: 1624110506 }, message: 'ok', code: 0 }

# 用户退出登录

# 语法

Resp resp = qcysdk.userLogout();
1

# 参数

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 用户修改密码

# 语法

Resp resp = qcysdk.userChangePassword(username, password, newPassword);
1

# 参数

参数名 必传 类型 参数说明
username string 用户名(长度不能超过20位)
password string 用户密码(长度6-30位)
newPassword string 新密码(长度6-30位)

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 用户充值(通过卡密)

# 语法

Resp resp = qcysdk.userRecharge(username, card);
1

# 参数

参数名 必传 类型 参数说明
username string 用户名(长度不能超过20位)
card string 充值使用的卡密(长度不超过45位)

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 用户解绑设备

# 语法

Resp resp = qcysdk.userUnbindDevice();
1

# 参数

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 试用登录

注意

登录成功后将自动启动一个线程发送心跳包,开发者就无需关注发送心跳包的细节。

# 语法

Resp resp = qcysdk.trialLogin();
1

# 参数

# 返回值

Resp类

# 获取卡密配置

# 语法

Resp resp = qcysdk.getCardConfig();
1

# 参数

# 返回值

Resp类,例:{ result: { config: '', server_time: 1624120946 }, message: 'ok', code: 0 }

# 更改卡密配置

# 语法

Resp resp = qcysdk.updateCardConfig(config);
1

# 参数

参数名 必传 类型 参数说明
config string 自定义配置(长度不能超过512位)

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 获取用户配置

# 语法

Resp resp = qcysdk.getUserConfig();
1

# 参数

# 返回值

Resp类,例:{ result: { config: '迪迦', server_time: 1624121563 }, message: 'ok', code: 0 }

# 更改用户配置

# 语法

Resp resp = qcysdk.updateUserConfig(config);
1

# 参数

参数名 必传 类型 参数说明
config string 自定义配置(长度不能超过512位)

# 返回值

Resp类,例:{"code": 0, "message": "OK"}

# 获取软件配置

# 语法

Resp resp = qcysdk.getSoftwareConfig();
1

# 参数

# 返回值

Resp类,例:{ result: { config: '迪迦', server_time: 1624121758 }, message: 'ok', code: 0 }

# 获取软件公告

# 语法

Resp resp = qcysdk.getSoftwareNotice();
1

# 参数

# 返回值

Resp类,例:{ result: { server_time: 1624121862, notice: '泰罗' }, message: 'ok', code: 0 }

# 获取软件版本号和下载链接

# 语法

Resp resp = qcysdk.getSoftwareVersion();
1

# 参数

# 返回值

Resp类,例:{ result: { server_time: 1624121862, version: '1.0.1', url:'www.baidu.com' }, message: 'ok', code: 0 }

# 获取远程变量

注意

调用此接口前 需要登录成功后才能调用。

# 语法

Resp resp = qcysdk.getRemoteVar(key);
1

# 参数

参数名 必传 类型 参数说明
key string 远程变量名(长度不能超过64位)

# 返回值

Resp类,例:{ result: { server_time: 1624122124, varValue: '斯奥特曼' }, message: 'ok', code: 0 }

# 获取远程数据

注意

调用此接口前 需要登录成功后才能调用。

# 语法

Resp resp = qcysdk.getRemoteData(key);
1

# 参数

参数名 必传 类型 参数说明
key string 远程数据key(长度不能超过64位)

# 返回值

Resp类,例:{ result: { server_time: 1624122295, value: '奥特曼' }, message: 'ok', code: 0 }

# 操作远程数据

# 新增远程数据

注意

调用此接口前 需要登录成功后才能调用。

# 语法

Resp resp = qcysdk.createRemoteData(key, value);
1

# 参数

参数名 必传 类型 参数说明
key string 远程数据key(长度不能超过64位)
value string 远程数据值(长度不能超过256位)

# 返回值

Resp类,例:{ result: { server_time: 1624122453 }, message: 'ok', code: 0 }

# 修改远程数据

注意

调用此接口前 需要登录成功后才能调用。

# 语法

Resp resp = qcysdk.updateRemoteData(key, value);
1

# 参数

参数名 必传 类型 参数说明
key string 远程数据key(长度不能超过64位)
value string 远程数据值(长度不能超过256位)

# 返回值

Resp类,例:{ result: { server_time: 1624122453 }, message: 'ok', code: 0 }

# 删除远程数据

注意

调用此接口前 需要登录成功后才能调用。

# 语法

Resp resp = qcysdk.deleteRemoteData(key);
1

# 参数

参数名 必传 类型 参数说明
key string 远程数据key(长度不能超过64位)

# 返回值

Resp类,例:{ result: { server_time: 1624122453 }, message: 'ok', code: 0 }

# 云函数

注意

调用此接口前 需要登录成功后才能调用。

# 语法

Resp resp = qcysdk.callRemoteFn(fnName, params);
1

# 参数

参数名 必传 类型 参数说明
fnName string 云函数名(长度不能超过64位)
params string 调用云函数时传入的参数

# 返回值

Resp类,例:{"result":{"return":"55","server_time":1689788200},"message":"ok","sign":"236cd75d551fb991ac88684761778a17","nonce":"vwWSKfwOgbLocFzg15OX","code":0}