收藏官网首页
查看: 12020|回复: 0

数据接入Android APP开发指南

562

主题

1222

帖子

8115

积分

版主

Rank: 7Rank: 7Rank: 7

积分
8115
跳转到指定楼层
楼主
发表于 2016-7-7 15:54:46 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
本帖最后由 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" : { [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值为负数,则获取失败。数据获取结果,通过获取数据的回调返回。获取到的数据,按照时间排序,最新的数据排在最前面。
代码示例:
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.  用户账号类型

code
message
0
normal user
1
phone user
2
email user

7.  第三方账号类型

code
message
0
sina account
1
baidu account
2
qq account

8.  错误码

code
message
0
success
8001
connection_failed
8002
connection_timeout
8003
invalid parameters
9002
product_key invalid
9003
appid invalid
9004
token invalid
9005
user not exists
9006
token expired
9008
server error
9009
code expired
9010
code invalid
9015
form invalid
9018
phone unavailable
9019
username unavailable
9020
username or password error
9999
reserved







































1、机智云QQ群: 287087942
机智云爱好者-APP开发群: 599735135
QQ群目前非常活跃,欢迎大家参与进来,交流,讨论,答疑,解惑~~
2、机智云微信公众号: 机智云 gizwits /   机智云智能宠物屋go-kit
关注机智云Gizwits官方公众号随时掌握最新资讯和活动信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表