本帖最后由 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。 | public void onCreate() {
// 启动SDK,参数为机智云官网中查看产品信息得到的AppID
GizDataAccess.startWithAppId(getApplicationContext(), “APP_ID”);
}
|
3. 用户登录3.1. 注册用户登录的监听 代码示例: | GizDataAccessLogin gdalogin = new GizDataAccessLogin(this);
|
3.2. 实现用户登录的回调方法 代码示例: | public void didLogin(String uid, String token, GizDataAccessErrorCode result, String message) {
if (result.getResult() == 0 && uid != null && token != null) {
// 登录成功
// ……
}
|
3.3. 匿名登录 匿名登录时,不需要传入任何用户信息,SDK会生成默认的用户名。登录结果通过用户登录的回调返回。 代码示例: | gdaLogin.loginAnonymous();
|
3.4. 实名登录 需要传入注册时的用户账号和密码,用户账号可以是用户名、手机号或邮箱,以及密码。登录结果通过用户登录的回调返回。 代码示例: | gdaLogin.login(“YOUR_USERNAME”, “YOUR_PASSWORD”);
|
3.5. 第三方账号登录 支持百度、腾讯、新浪账号登录。需要传入登录需要用到的uid和token,以及账号类型。登录结果通过用户登录的回调返回。 代码示例: | gdaLogin.loginWithThirdAccountType(THIRD_ACCOUNT_TYPE, “YOUR_THIRD _ACCOUNT_UID”, “YOUR_THIRD _ACCOUNT_TOKEN”);
|
4. 数据接入4.1. 注册数据接入的监听 代码示例: | GizDataAccessSource gdaSource = new GizDataAccessSource(this);
|
4.2. 数据上传 实现数据上传的回调方法。 代码示例: | public void didSaveData(GizDataAccessSource source, GizDataAccessErrorCode result, String message) {
if (result.getResult() == 0) {
// 上传成功
// ……
}
}
|
上传数据时,支持批量数据上传。最后一个参数data为数组类型,可以指定每一组数据的产生时间和内容,格式为标准的JSON。上传结果,通过数据上传的委托返回。 data示例: | {"ts": 1420732800000, "attrs": { “weight": 50, “fat": 0.2, “remark": “too thin" } }
|
代码示例: | gdaSource.saveData(“YOUR_LOGIN_TOKEN”, “YOUR_BLE_PRODUCT_KEY”, “YOUR_BLE_DEVICE_SN”, “YOUR_DATA”);
|
4.3. 数据获取 实现数据获取的委托方法。 获取到的数据内容,按以下键值对方式提供: | "attrs" : { [dynamic_keys] : [dynamic_values], ... },
"uid" : [uid],
"sn" : [sn],
"ts" : [ts],
"product_key" : [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值为负数,则获取失败。数据获取结果,通过获取数据的回调返回。获取到的数据,按照时间排序,最新的数据排在最前面。 代码示例: | gdaSource.loadData(“YOUR_LOGIN_TOKEN”, “YOUR_BLE_PRODUCT_KEY”, “YOUR_BLE_DEVICE_SN”, START_DATA_TIME, END_DATA_TIME, 20, 0);
|
5. 用户账号注册、信息修改和匿名转换5.1. 用户注册 注册用户账号注册的监听。 代码示例: | GizDataAccessLogin gdaRegister = new GizDataAccessLogin(this);
|
实现用户账号注册的回调方法。 代码示例 | public void didRegisterUser(String uid, String token, GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 用户注册成功
// ……
}
}
|
通过accountType参数指定账号注册方式:用户名注册、手机号注册、邮箱注册。只有手机号注册时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。其他注册方式,验证码传nil。注册结果通过用户账号注册的回调返回。 代码示例: | gdaRegister.registerUser(“YOUR_USERNAME”, “YOUR_PASSWORD”, “YOUR_PHONE_VERIFYCODE”, YOUR_THIRD_ACCOUNT_TYPE];
|
5.2. 修改密码 注册密码修改的监听。 代码示例: | GizDataAccessLogin gdaResetPassword = new GizDataAccessLogin(this);
|
实现密码修改的回调方法 代码示例: | public void didChangeUserPassword(GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 密码重置成功
// ……
}
}
|
5.3. 重置密码 可以通过手机号和邮箱重置密码。accountType指定是手机号重置还是邮箱重置,只有手机号重置时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。邮箱重置时,手机验证码传nil。重置结果通过密码修改的回调返回。 代码示例: | gdaResetPassword.resetPassword(“YOUR_USERNAME”, “YOUR_PHONE_VERIFYCODE”, “YOUR_NEW_PASSWORD”, YOUR_THIRD_ACCOUNT_TYPE);
|
5.4. 修改密码 用户实名登录后可以修改密码,修改结果通过密码修改的回调返回。 代码示例: | gdaLogin.changeUserPassword(“YOUR_LOGIN_TOKEN”, “YOUR_OLD_PASSWORD”, “YOUR_NEW_PASSWORD”);
|
5.5. 修改用户信息 注册修改用户信息的监听。 代码示例: | GizDataAccessLogin gdaChangeUserInfo = new GizDataAccessLogin(this);
|
实现修改用户信息的回调方法 代码示例: | public void didChangeUserPassword(GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 密码重置成功
// ……
}
}
|
用户实名登录后可以修改手机号或邮箱,accountType指定是要修改手机号还是邮箱。只有修改手机号时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。修改邮箱时,验证码传nil。修改结果通过用户信息修改的回调返回。 代码示例: | gdaLogin.changeUserInfo(“YOUR_TOKEN”, “YOUR_USERNAME”, “YOUR_PHONE_VERIFYCODE”, YOUR_THIRD_ACCOUNT_TYPE];
|
5.6. 匿名转换 注册匿名转换的监听。 代码示例: | GizDataAccessLogin gdaLogin = new GizDataAccessLogin(this);
|
实现匿名转换的回调方法 代码示例: | public void didTransAnonymousUser(GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 匿名转换成功
// ……
}
}
|
匿名登录后,可以转换成普通用户、手机号用户或邮箱用户,您可以通过accountType参数指定要转换的用户类型。转成手机号用户时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。其他用户类型,验证码传nil。转换结果通过匿名转换的回调返回。 代码示例: | gdaLogin.transAnonymousUser(“YOUR_TOKEN”, “YOUR_USERNAME”, “YOUR_NEW_PASSWORD”, “YOUR_PHONE_VERIFYCODE”, accountType:YOUR_THIRD_ACCOUNT_TYPE];
|
5.7. 获取手机验证码 注册手机验证码的监听。 代码示例: | GizDataAccessLogin gdaVerifyCode = new GizDataAccessLogin(this);
|
实现手机验证码的回调方法 代码示例: | public void didRequestSendVerifyCode(GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 获取到了手机验证码
// ……
}
}
|
在用户注册、信息修改、匿名用户转换等过程中,手机验证码可以通过此方法获取。验证码通过手机验证码的回调返回。 代码示例: | gdaLogin.requestSendVerifyCode(“PHONE_VERIFY_CODE”);
|
6. 用户账号类型 7. 第三方账号类型 8. 错误码 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | username or password error | | |
|