文章标题:《蓝牙接入Android SDK集成指南》 文档更新:2015-05-14 API接口文档:文档下载
第一步:将 SDK 导入到你的工程中
登录机智云官方网站下载并解压最新版本的SDK。如果您还尚未下载,请 点击这里下载
将解压后的 jar 文件 复制到 Android 项目的 libs 目录即可
第二步:引入头文件和注册 SDK 的 AppID
登录机智云官方网站查看产品信息获得 AppID 。如果尚未注册,请点击这里注册
初始化 SDK
在 Application的 onCreate() 方法来初始化 SDK,指定APPID.
public void onCreate() {
// 启动SDK,参数为机智云官网中查看产品信息得到的AppID
GizDataAccess.startWithAppId(getApplicationContext(), “APP_ID”);
}
第三步:用户登录
注册用户登录的监听
代码示例:
GizDataAccessLogin gdalogin = new GizDataAccessLogin(this);
实现用户登录的回调方法
代码示例:
public void didLogin(String uid, String token, GizDataAccessErrorCode result, String message) {
if (result.getResult() == 0 && uid != null && token != null) {
// 登录成功
// ……
}
匿名登录
匿名登录时,不需要传入任何用户信息,SDK会生成默认的用户名。登录结果通过用户登录的回调返回。
代码示例:
gdaLogin.loginAnonymous();
实名登录
需要传入注册时的用户账号和密码,用户账号可以是用户名、手机号或邮箱,以及密码。登录结果通过用户登录的回调返回。
代码示例:
gdaLogin.login(“YOUR_USERNAME”, “YOUR_PASSWORD”);
第三方账号登录
支持百度、腾讯、新浪账号登录。需要传入登录需要用到的uid和token,以及账号类型。登录结果通过用户登录的回调返回。
代码示例:
gdaLogin.loginWithThirdAccountType(THIRD_ACCOUNT_TYPE, “YOUR_THIRD _ACCOUNT_UID”, “YOUR_THIRD _ACCOUNT_TOKEN”);
第四步:数据接入
注册数据接入的监听
代码示例:
GizDataAccessSource gdaSource = new GizDataAccessSource(this);
数据上传
实现数据上传的回调方法
代码示例:
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”);
数据获取
实现数据获取的委托方法
获取到的数据内容,按以下键值对方式提供:
"attrs" : { [dynamic_keys] : [dynamic_values], ... },
"uid" : [uid],
"sn" : [sn],
"ts" : [ts],
"product_key" : [product_key]
代码示例:
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);
第四步:用户账号注册、信息修改和匿名转换
用户注册
注册用户账号注册的监听
代码示例:
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];
修改密码
注册密码修改的监听
代码示例:
GizDataAccessLogin gdaResetPassword = new GizDataAccessLogin(this);
实现密码修改的回调方法
代码示例:
public void didChangeUserPassword(GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 密码重置成功
// ……
}
}
重置密码
可以通过手机号和邮箱重置密码。accountType指定是手机号重置还是邮箱重置,只有手机号重置时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。邮箱重置时,手机验证码传nil。重置结果通过密码修改的回调返回。
代码示例:
gdaResetPassword.resetPassword(“YOUR_USERNAME”, “YOUR_PHONE_VERIFYCODE”, “YOUR_NEW_PASSWORD”, YOUR_THIRD_ACCOUNT_TYPE);
修改密码
用户实名登录后可以修改密码,修改结果通过密码修改的回调返回。
代码示例:
gdaLogin.changeUserPassword(“YOUR_LOGIN_TOKEN”, “YOUR_OLD_PASSWORD”, “YOUR_NEW_PASSWORD”);
修改用户信息
注册修改用户信息的监听
代码示例:
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];
匿名转换
注册匿名转换的监听
代码示例:
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];
获取手机验证码
注册手机验证码的监听
代码示例: GizDataAccessLogin gdaVerifyCode = new GizDataAccessLogin(this);
实现手机验证码的回调方法
代码示例:
public void didRequestSendVerifyCode(GizDataAccessErrorCode result, String message) {
if(result == kGizDataAccessErrorNone) {
// 获取到了手机验证码
// ……
}
}
获取手机验证码
在用户注册、信息修改、匿名用户转换等过程中,手机验证码可以通过此方法获取。验证码通过手机验证码的回调返回。
代码示例:
gdaLogin.requestSendVerifyCode(“PHONE_VERIFY_CODE”);
用户账号类型
第三方账号类型
错误码