更新时间:2024-11-18 11:33:08下载pdf
Smart App SDK 安卓版提供了手机号码和密码的注册和登录能力。
为了加强用户信息的数据安全,涂鸦优化了验证码发送流程,并添加了账号限制。只有验证码服务可用的地区,才可以发送验证码。
如果您想为 App 启用手机号码验证服务,那您需要开通和配置 手机号码短信验证服务。该服务让您的 App 用户可以通过手机号码直接注册账号或绑定已有的 App 账号,并可以直接通过手机号码完成登录 App、找回密码等操作。详细操作说明,请参考 开通和配置手机号码短信验证服务。
接口说明
TuyaHomeSdk.getUserInstance().getWhiteListWhoCanSendMobileCodeSuccess(IWhiteListCallback callback);
参数说明
参数 | 说明 |
---|---|
callback | 回调 |
示例代码
TuyaHomeSdk.getUserInstance().getWhiteListWhoCanSendMobileCodeSuccess(new IWhiteListCallback() {
@Override
public void onSuccess(WhiteList whiteList) {
Toast.makeText(mContext, "查询可用性成功:" + 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();
}
});
该接口在 3.25.0 及之前版本的 SDK 中会有所变化,如果您使用的是旧版本 SDK,详情请参考 3.25.0 升级说明。
接口说明
TuyaHomeSdk.getUserInstance().sendVerifyCodeWithUserName(String userName, String region, String countryCode, int type, IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
userName | 手机号码 |
region | 区域,默认填写 "" 即可 |
countryCode | 手机号码所在的国家区号,例如 86 表示中国大陆地区 |
type | 发送验证码类型。取值:
|
callback | 回调 |
本接口用于注册账号、登录账号、重设账号密码时验证码的校验。
接口说明
TuyaHomeSdk.getUserInstance().checkCodeWithUserName(String userName, String region, String countryCode, String code, int type, IResultCallback callback)
参数说明
参数 | 说明 |
---|---|
userName | 用户名 |
region | 区域,默认填写 "" 即可 |
countryCode | 手机号码所在的国家区号,例如 86 表示中国大陆地区 |
code | 验证码 |
type | 校验类型。取值:
|
callback | 回调 |
使用手机号码注册账号前,您需要先 获取验证码。
接口说明
TuyaHomeSdk.getUserInstance().registerAccountWithPhone(final String countryCode, final String phoneNumber, final String passwd, final String code, final IRegisterCallback callback);
参数说明
参数 | 说明 |
---|---|
countryCode | 手机号码所在的国家区号,例如 86 表示中国大陆地区 |
phoneNumber | 电话号码 |
passwd | 密码 |
code | 验证码 |
callback | 回调 |
示例代码
// 获取手机验证码
TuyaHomeSdk.getUserInstance().sendVerifyCodeWithUserName("13666666666", "", "86", 1, 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, "获取验证码成功", Toast.LENGTH_SHORT).show();
}
});
// 注册手机密码账户
TuyaHomeSdk.getUserInstance().registerAccountWithPhone("86","13666666666","123456","124332", new IRegisterCallback() {
@Override
public void onSuccess(User user) {
Toast.makeText(mContext, "注册成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
}
});
接口说明
TuyaHomeSdk.getUserInstance().loginWithPhonePassword(String countryCode, String phone, String passwd, final ILoginCallback callback);
参数说明
参数 | 说明 |
---|---|
countryCode | 手机号码所在的国家区号,例如 86 表示中国大陆地区 |
phone | 手机号码 |
passwd | 登录密码 |
callback | 回调 |
示例代码
//手机密码登录
TuyaHomeSdk.getUserInstance().loginWithPhonePassword("86", "13666666666", "123456", new ILoginCallback() {
@Override
public void onSuccess(User user) {
Toast.makeText(mContext, "登录成功,用户名:" +TuyaHomeSdk.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();
}
});
您需要先调用 验证码发送接口,发送验证码,再调用 验证码验证接口。将收到的验证码填入对应的参数中。
接口说明
TuyaHomeSdk.getUserInstance().loginWithPhone(String countryCode, String phone, String code, final ILoginCallback callback)
参数说明
参数 | 说明 |
---|---|
countryCode | 手机号码所在的国家区号,例如 86 表示中国大陆地区 |
phone | 电话号码 |
code | 验证码 |
callback | 回调 |
示例代码
//获取手机验证码
TuyaHomeSdk.getUserInstance().sendVerifyCodeWithUserName("13666666666", "", "86", 2, 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, "获取验证码成功", Toast.LENGTH_SHORT).show();
}
});
// 手机验证码登录
TuyaHomeSdk.getUserInstance().loginWithPhone("86", "13355555555", "123456", new ILoginCallback() {
@Override
public void onSuccess(User user) {
Toast.makeText(mContext, "登录成功,用户名:" +TuyaHomeSdk.getUserInstance().getUser().getUsername(), Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, error, Toast.LENGTH_SHORT).show();
}
});
接口说明
TuyaHomeSdk.getUserInstance().resetPhonePassword(final String countryCode, final String phone, final String code, final String newPasswd, final IResetPasswordCallback callback);
参数说明
参数 | 说明 |
---|---|
countryCode | 手机号码所在的国家区号,例如 86 表示中国大陆地区 |
phone | 手机号码 |
code | 验证码 |
newPasswd | 新密码 |
callback | 回调 |
示例代码
// 手机获取验证码
TuyaHomeSdk.getUserInstance().sendVerifyCodeWithUserName("13666666666", "", "86", 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, "获取验证码成功", Toast.LENGTH_SHORT).show();
}
});
// 重置手机密码
TuyaHomeSdk.getUserInstance().resetPhonePassword("86", "13555555555", "123456", "123123", new IResetPasswordCallback(){
@Override
public void onSuccess() {
Toast.makeText(mContext, "找回密码成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onError(String code, String error) {
Toast.makeText(mContext, "code: " + code + "error:" + error, Toast.LENGTH_SHORT).show();
}
});
绑定邮箱,包括获取绑定验证码接口和绑定邮箱接口。
接口说明
TuyaHomeSdk.getUserInstance().sendBindVerifyCodeWithEmail(@NonNull String countryCode, @NonNull String email, @NonNull IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
countryCode | 手机号码所在的国家区号,例如 86 表示中国大陆地区 |
邮箱地址 | |
callback | 回调 |
接口说明
TuyaHomeSdk.getUserInstance().bindEmail(@NonNull String countryCode, @NonNull String email, @NonNull String code, @NonNull String sId, @NonNull IResultCallback callback);
参数说明
参数 | 说明 |
---|---|
countryCode | 手机号码所在的国家区号,例如 86 表示中国大陆地区 |
邮箱地址 | |
code | 验证码 |
sId | 用户登录的会话(session)ID,您可以在 user 对象中获取 sessionID |
callback | 回调 |
示例代码
//获取绑定验证码
TuyaHomeSdk.getUserInstance().sendBindVerifyCodeWithEmail("86", "123456@123.com", new IResultCallback() {
@Override
public void onError(String code, String error) {
// TODO
}
@Override
public void onSuccess() {
// TODO
}
});
//绑定邮箱
TuyaHomeSdk.getUserInstance().bindEmail("86", "123456@123.com", "123456", TuyaHomeSdk.getUserInstance().getUser().getSid(), new IResultCallback() {
@Override
public void onError(String code, String error) {
// TODO
}
@Override
public void onSuccess() {
// TODO
}
});
重置密码后,如果有多个 App 都同时登录了这个账号,那么其他设备上的 App 会触发 Session 失效的回调。您需要自行实现回调后的动作,如跳转到登录页面等。详情请参考 Session 过期的处理。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈