更新时间:2023-04-13 09:36:18下载pdf
涂鸦 IoT App SDK 安卓版提供了即全面又灵活的 IoT App 用户的管理方式。本教程涵盖了用户登录、注册、退出、密码找回、用户信息修改等流程,提供了详细的 Java 示例代码,供您参考。
通过学习本教程,您可以了解到如何:
在您开始本教程前,请先确保您已经 :
在涂鸦智能 IoT 平台注册账号并创建App,获取 SDK 的 AppKey,AppSecret。参考 准备工作。
使用 Android Studio 将涂鸦安卓 IoT App SDK集成到您的项目中 。参考快速集成 。
本教程在 macOS 上使用 Android Studio(4.1.2)集成涂鸦 IoT App SDK。针对 SDK 版本 v3.26.5,目前 SDK 支持的 minSdkVersion
最低为 19
。
学习完本教程,您可以创建一个类似以下安卓 App 的 Demo。
无论是使用手机号码或邮箱地址注册的账号,您需要提供 countryCode 参数(国家区号),用于就近选择涂鸦 IoT 的可用区。如中国大陆为86
,美国为1
。各个可用区的数据是相互独立的,因此在 中国大陆(86) 注册的账号,在 美国(1) 无法使用(提示用户不存在)。可用区相关概念请参考 云服务介绍。
在该模块中,您将频繁地调用对象 User
。它存储了当前用户的所有信息,通过 ThingHomeSdk.getUserInstance()
获取到IThingUser
,它提供了相关的登录注册方法。详情请参考 User。
思路:出于对用户信息的隐私安全考虑,涂鸦对验证码的机制做了优化和账号限制。只有当您开通了对应地区的验证码发送服务,才可以在地区内发送验证码。
示例:
ThingHomeSdk.getUserInstance().getWhiteListWhoCanSendMobileCodeSuccess(new IWhiteListCallback() {
@Override
public void onSuccess(WhiteList whiteList) {
Toast.makeText(mContext, "Whitelist Success:" + whiteList.getCountryCodes(), Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
}
});
返回:返回值 whiteList
表示一个或多个国家或地区,以 ,
隔开的字符串,例如 86
和 01
。可用区编号列表,请参考 涂鸦云平台介绍。
开通:目前,中国大陆默认开通验证码发送服务,若您希望自己的应用发布在其他国家或地区,则必须提前查询验证码开通的地区,若有需求,请联系您的涂鸦客户经理或 提交工单 开通该服务。
思路:手机号注册与邮箱注册流程类似,用户必须先获取验证码。
接口:在 IoT App SDK 最新版本中,涂鸦将发送验证码的接口重新整合。现在,无论是手机或是邮箱,您都可以使用统一的获取验证码接口在登录、注册及后续密码重置操作中获取相应的验证码。
ThingHomeSdk.getUserInstance().sendVerifyCodeWithUserName(String userName, String region, String countryCode, int type, IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
userName | 手机号码/邮箱账号 |
region | 区域,默认填写:“” 即可 |
countryCode | 手机区号:如 “86” |
type | 发送验证码类型:1:注册 2:登录 3:重置密码 |
callback | 回调 |
示例:
ThingHomeSdk.getUserInstance().sendVerifyCodeWithUserName("xxx6/7825***66@123.com", "", "86", 1/2/3, new IResultCallback() {
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
}
@Override
public void onSuccess() {
Toast.makeText(mContext, "Get code success:", Toast.LENGTH_SHORT).show();
}
});
思路:使用手机号码注册账号前,您需要调用获取验证码接口,传入相应 type
。然后调用号码注册接口,需要上传国家码、手机号码、密码以及获取到的验证码。
示例:
ThingHomeSdk.getUserInstance().registerAccountWithPhone("86","13666666666","123456","124332", new IRegisterCallback() {
@Override
public void onSuccess(User user) {
Toast.makeText(mContext, "Register success", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
}
});
在注册成功后,您就可以使用国家码、手机号和密码登录涂鸦IoT平台系统 。示例代码如下:
思路:使用手机号码注册账号成功后,用户就可以使用手机号登录到平台系统。
示例:
ThingHomeSdk.getUserInstance().loginWithPhonePassword("86", "13666666666", "123456", new ILoginCallback() {
@Override
public void onSuccess(User user) {
Toast.makeText(mContext, "Login success:" +ThingHomeSdk.getUserInstance().getUser().getUsername(), Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
}
});
思路:当用户使用手机号登录后,还可以绑定用户的邮箱账号。成功后,用户就可以同时使用邮箱登录账号。同样的,您需要首先调用 sendBindVerifyCodeWithEmail
获取验证码,请注意,绑定邮箱的验证码为单独接口。
获取验证码 示例:
ThingHomeSdk.getUserInstance().sendBindVerifyCodeWithEmail("86","123456@123.com", new IResultCallback(){
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
Toast.makeText(mContext, "Send code success:", Toast.LENGTH_SHORT).show();
}
});
绑定邮箱 示例:
ThingHomeSdk.getUserInstance().bindEmail("86", "123456@123.com","123456", ThingHomeSdk.getUserInstance().getUser().getSid(), new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
Toast.makeText(mContext, "Bind success:", Toast.LENGTH_SHORT).show();
}
});
思路:与手机号注册类似,实现邮箱注册前,您需要调用获取验证码接口,然后调用邮箱注册接口,需要上传国家码、邮箱地址、密码以及获取到的验证码。详情请参考 邮箱注册。
示例:
ThingHomeSdk.getUserInstance().registerAccountWithEmail("86", "123456@123.com","123456","5723", new IRegisterCallback() {
@Override
public void onSuccess(User user) {
Toast.makeText(mContext, "Register success:", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
}
});
思路:当用户使用邮箱注册账号成功后,就可以使用该邮箱登录到 App。
示例:
ThingHomeSdk.getUserInstance().loginWithEmail("86", "123456@123.com", "123123", new ILoginCallback() {
@Override
public void onSuccess(User user) {
Toast.makeText(mContext, "Login success:").show();
}
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
}
});
涂鸦 IoT App SDK 为您提供了常用的第三方登录接口。如微信,QQ,谷歌,Facebook 等。本教程以微信和谷歌登录为例进行说明。
使用微信登录之前,您需要在微信开发者平台上按照提示注册账号,并按照微信开放平台的提示完成开发者资质认证。参考微信登录申请流程。
您还需要将获得的App ID 和App Secret 填入 涂鸦 IoT 平台,详情见下图:
完成后您就可以调用微信登录接口完成微信登录。示例代码如下:
ThingHomeSdk.getUserInstance().loginByWechat("86",
"",
new ILoginCallback() {
@Override
public void onSuccess(User user) {
}
@Override
public void onError(String code, String error) {
}
});
与微信登录类似,您需要登录 Google 开发者平台配置应用信息并将产生的 Google 身份平台授权的 Client ID 填入 涂鸦 IoT 平台。申请的具体流程可参考 申请 Google 登录。
接下来,您就可以调用 谷歌登录 接口完成谷歌登录。
ThingHomeSdk.getUserInstance().thirdLogin(countryNumberCode,token,"gg","{\"pubVersion\":1}", new ILoginCallback() {
@Override
public void onSuccess(User user) {
}
@Override
public void onError(String code, String error) {
}
});
登录成功后您可以修改用户信息如昵称,密码,地区等。本教程演示如何修改用户昵称和登录密码。更多修改信息的接口调用可参考 用户信息修改。
通过手机号和邮箱注册的账号来进行登录,可以通过调用修改昵称的接口来设置账号昵称。第三方登录,如微信登录默认昵称就是微信的用户名,不支持修改昵称。示例代码如下:
ThingHomeSdk.getUserInstance().reRickName(nickName,
new IReNickNameCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(String code, String error) {
}
});
用户在登录后或忘记密码时,您可以通过调用修改密码接口来重设密码。过程与注册类似,您需要首先调用发送验证码接口。注意 ,此时参数type
所传值为3 。成功获取验证码后可以根据账号调用不同接口来实现修改密码。
通过手机号码修改密码示例
ThingHomeSdk.getUserInstance().resetPhonePassword("86", "13555555555", "123456", "123123", new IResetPasswordCallback(){
@Override
public void onSuccess() {
Toast.makeText(mContext, "onSuccess", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
}
});
修改邮箱地址示例
ThingHomeSdk.getUserInstance().resetEmailPassword("86", "123456@123.com", "123123","a12345", new IResetPasswordCallback() {
@Override
public void onSuccess() {
Toast.makeText(mContext, "onSuccess", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
}
});
思路:账号退出登录,或切换称其他账号。
接口:退出登录
示例:
ThingHomeSdk.getUserInstance().touristLogOut(new ILogoutCallback() {
@Override
public void onSuccess() {
}
@Override
public void onError(String code, String error) {
}
});
接口:注销账号
示例:
ThingHomeSdk.getUserInstance().cancelAccount(new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈