数据接入Android APP开发指南
本帖最后由 Genius 于 2016-7-7 15:57 编辑1.将 SDK 导入到你的工程中登录机智云官方网站下载并解压最新版本的SDK。如果您还尚未下载,请 点击这里下载,将解压后的 jar 文件 复制到 Android 项目的 libs 目录即可。2.引入头文件和注册 SDK 的 AppID2.1. 获取AppID登录机智云官方网站查看产品信息获得 AppID 。如果尚未注册,请点击这里注册。2.2. 初始化 SDK在 Application的 onCreate() 方法来初始化 SDK,指定APPID。
1
2
3
4
public void onCreate() {
// 启动SDK,参数为机智云官网中查看产品信息得到的AppID
GizDataAccess.startWithAppId(getApplicationContext(), “APP_ID”);
}
3.用户登录3.1. 注册用户登录的监听代码示例:
1
GizDataAccessLogin gdalogin = new GizDataAccessLogin(this);
3.2. 实现用户登录的回调方法代码示例:
1
2
3
4
5
public void didLogin(String uid, String token, GizDataAccessErrorCode result, String message) {
if (result.getResult() == 0 && uid != null && token != null) {
// 登录成功
// ……
}
3.3. 匿名登录匿名登录时,不需要传入任何用户信息,SDK会生成默认的用户名。登录结果通过用户登录的回调返回。代码示例:
1
gdaLogin.loginAnonymous();
3.4. 实名登录需要传入注册时的用户账号和密码,用户账号可以是用户名、手机号或邮箱,以及密码。登录结果通过用户登录的回调返回。代码示例:
1
gdaLogin.login(“YOUR_USERNAME”, “YOUR_PASSWORD”);
3.5. 第三方账号登录支持百度、腾讯、新浪账号登录。需要传入登录需要用到的uid和token,以及账号类型。登录结果通过用户登录的回调返回。代码示例:
1
gdaLogin.loginWithThirdAccountType(THIRD_ACCOUNT_TYPE, “YOUR_THIRD _ACCOUNT_UID”, “YOUR_THIRD _ACCOUNT_TOKEN”);
4.数据接入4.1. 注册数据接入的监听代码示例:
1
GizDataAccessSource gdaSource = new GizDataAccessSource(this);
4.2. 数据上传实现数据上传的回调方法。代码示例:
1
2
3
4
5
6
public void didSaveData(GizDataAccessSource source, GizDataAccessErrorCode result, String message) {
if (result.getResult() == 0) {
// 上传成功
// ……
}
}
上传数据时,支持批量数据上传。最后一个参数data为数组类型,可以指定每一组数据的产生时间和内容,格式为标准的JSON。上传结果,通过数据上传的委托返回。data示例:
1
{"ts": 1420732800000, "attrs": { “weight": 50, “fat": 0.2, “remark": “too thin" } }
代码示例:
1
gdaSource.saveData(“YOUR_LOGIN_TOKEN”, “YOUR_BLE_PRODUCT_KEY”, “YOUR_BLE_DEVICE_SN”, “YOUR_DATA”);
4.3. 数据获取实现数据获取的委托方法。获取到的数据内容,按以下键值对方式提供:
1
2
3
4
5
"attrs" : { : , ... },
"uid" : ,
"sn" : ,
"ts" : ,
"product_key" :
代码示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void didLoadData(GizDataAccessSource arg0, JSONArray jsonArray, GizDataAccessErrorCode result, String message) {
if (result.getResult() == 0) {
if (jsonArray != null) {
for (int i = 0; i < jsonArray.length(); i++) {
try {
JSONObject jsonObject = jsonArray.getJSONObject(i);
System.out.println("uid: " + jsonObject.get("uid"));
System.out.println("device_sn: " + jsonObject.get("device_sn"));
System.out.println("product_key: " + jsonObject.get("product_key"));
System.out.println("ts: " + jsonObject.get("ts"));
System.out.println("attrs: " + jsonObject.get("attrs"));
System.out.println("\n");
} catch (JSONException e) {
e.printStackTrace();
}
}
} else {
System.out.println("暂无数据");
}
} else {
System.out.println("读取失败:" + message);
}
}
获取数据时,需指定起止时间段。如果limit值为0将只返回20条数据,若skip值为负数,则获取失败。数据获取结果,通过获取数据的回调返回。获取到的数据,按照时间排序,最新的数据排在最前面。代码示例:
1
gdaSource.loadData(“YOUR_LOGIN_TOKEN”, “YOUR_BLE_PRODUCT_KEY”, “YOUR_BLE_DEVICE_SN”, START_DATA_TIME, END_DATA_TIME, 20, 0);
5.用户账号注册、信息修改和匿名转换5.1. 用户注册注册用户账号注册的监听。代码示例:
1
GizDataAccessLogin gdaRegister = new GizDataAccessLogin(this);
实现用户账号注册的回调方法。代码示例
1
2
3
4
5
6
public void didRegisterUser(String uid, String token, GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 用户注册成功
// ……
}
}
通过accountType参数指定账号注册方式:用户名注册、手机号注册、邮箱注册。只有手机号注册时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。其他注册方式,验证码传nil。注册结果通过用户账号注册的回调返回。代码示例:
1
gdaRegister.registerUser(“YOUR_USERNAME”, “YOUR_PASSWORD”, “YOUR_PHONE_VERIFYCODE”, YOUR_THIRD_ACCOUNT_TYPE];
5.2. 修改密码注册密码修改的监听。代码示例:
1
GizDataAccessLogin gdaResetPassword = new GizDataAccessLogin(this);
实现密码修改的回调方法代码示例:
1
2
3
4
5
6
public void didChangeUserPassword(GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 密码重置成功
// ……
}
}
5.3. 重置密码可以通过手机号和邮箱重置密码。accountType指定是手机号重置还是邮箱重置,只有手机号重置时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。邮箱重置时,手机验证码传nil。重置结果通过密码修改的回调返回。代码示例:
1
gdaResetPassword.resetPassword(“YOUR_USERNAME”, “YOUR_PHONE_VERIFYCODE”, “YOUR_NEW_PASSWORD”, YOUR_THIRD_ACCOUNT_TYPE);
5.4. 修改密码用户实名登录后可以修改密码,修改结果通过密码修改的回调返回。代码示例:
1
gdaLogin.changeUserPassword(“YOUR_LOGIN_TOKEN”, “YOUR_OLD_PASSWORD”, “YOUR_NEW_PASSWORD”);
5.5. 修改用户信息注册修改用户信息的监听。代码示例:
1
GizDataAccessLogin gdaChangeUserInfo = new GizDataAccessLogin(this);
实现修改用户信息的回调方法代码示例:
1
2
3
4
5
6
public void didChangeUserPassword(GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 密码重置成功
// ……
}
}
用户实名登录后可以修改手机号或邮箱,accountType指定是要修改手机号还是邮箱。只有修改手机号时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。修改邮箱时,验证码传nil。修改结果通过用户信息修改的回调返回。代码示例:
1
gdaLogin.changeUserInfo(“YOUR_TOKEN”, “YOUR_USERNAME”, “YOUR_PHONE_VERIFYCODE”, YOUR_THIRD_ACCOUNT_TYPE];
5.6. 匿名转换注册匿名转换的监听。代码示例:
1
GizDataAccessLogin gdaLogin = new GizDataAccessLogin(this);
实现匿名转换的回调方法代码示例:
1
2
3
4
5
6
public void didTransAnonymousUser(GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 匿名转换成功
// ……
}
}
匿名登录后,可以转换成普通用户、手机号用户或邮箱用户,您可以通过accountType参数指定要转换的用户类型。转成手机号用户时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。其他用户类型,验证码传nil。转换结果通过匿名转换的回调返回。代码示例:
1
gdaLogin.transAnonymousUser(“YOUR_TOKEN”, “YOUR_USERNAME”, “YOUR_NEW_PASSWORD”, “YOUR_PHONE_VERIFYCODE”, accountType:YOUR_THIRD_ACCOUNT_TYPE];
5.7. 获取手机验证码注册手机验证码的监听。代码示例:
1
GizDataAccessLogin gdaVerifyCode = new GizDataAccessLogin(this);
实现手机验证码的回调方法代码示例:
1
2
3
4
5
6
public void didRequestSendVerifyCode(GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 获取到了手机验证码
// ……
}
}
在用户注册、信息修改、匿名用户转换等过程中,手机验证码可以通过此方法获取。验证码通过手机验证码的回调返回。代码示例:
1
gdaLogin.requestSendVerifyCode(“PHONE_VERIFY_CODE”);
6.用户账号类型
codemessage
0normal user
1phone user
2email user
7.第三方账号类型
codemessage
0sina account
1baidu account
2qq account
8.错误码
codemessage
0success
8001connection_failed
8002connection_timeout
8003invalid parameters
9002product_key invalid
9003appid invalid
9004token invalid
9005user not exists
9006token expired
9008server error
9009code expired
9010code invalid
9015form invalid
9018phone unavailable
9019username unavailable
9020username or password error
9999reserved
页:
[1]