账号和用户SDK提供了账号能力,包括注册、登录、登出、获取账号、会话管理、人机校验等功能,还提供了UI集成显示、UI定制等能力。

依赖SDK 概述
API通道 提供API通道能力

初始化

初始化前需确保已集成安全图片,初始化的操作请参见SDK初始化

内置账号

内置账号为生活物联网平台提供的账号能力,您在客户端集成后即可使用。包括以下内容。

  • 基础功能

    基础功能包括:注册、登录、退出登录、忘记密码、注销账号等。

    • 注册

      调用登录页面后,在登录页面内会出现注册和忘记密码的功能,无需额外开发。

    • 登录

      目前平台已经支持两种登录方式:账号登录、邮箱登录。登录页面调起后,两种登录方式都可以使用。

      LoginBusiness.login(new ILoginCallback() {
          @Override
          public void onLoginSuccess() {
              Log.i(TAG,"登录成功");                    
         }
          @Override
          public void onLoginFailed(int code, String error) {
              Log.i(TAG,"登录失败");                    
          }
      });
    • 退出登录
      LoginBusiness.logout(new ILogoutCallback() {
          @Override
          public void onLogoutSuccess() {
              Log.i(TAG,"登出成功");                    
          }
      
          @Override
          public void onLogoutFailed(int code, String error) {
              Log.i(TAG,"登出失败");                    
          }
      });
    • 忘记密码

      在调起登录页面后,在登录页面内会出现注册和忘记密码的功能,无需额外开发。

    • 注销账号

      注销账号的时候,同时会把用户绑定的设备都解除绑定关系,请参见注销账号

  • 修改个人信息
     Map<String, Object> map = new LinkedHashMap<>();
            map.put("displayName", newName);
            OpenAccountUIService oas = OpenAccountSDK.getService(OpenAccountUIService.class);
            oas.updateProfile(getApplicationContext(), map, new LoginCallback() {
                @Override
                public void onSuccess(OpenAccountSession openAccountSession) {
                }
    
                @Override
                public void onFailure(int i, String s) {
                }
            });
  • 修改头像

    需要先将头像图片存储到云端,获取该图片的URL,再用如下方式更新。

     Map<String, Object> map = new LinkedHashMap<>();
            map.put("avatarUrl", avatarUrl);
            OpenAccountUIService oas = OpenAccountSDK.getService(OpenAccountUIService.class);
            oas.updateProfile(getApplicationContext(), map, new LoginCallback() {
                @Override
                public void onSuccess(OpenAccountSession openAccountSession) {
                }
    
                @Override
                public void onFailure(int i, String s) {
                }
            });
  • 刷新会话
    LoginBusiness.refreshSession(true, new IRefreshSessionCallback() {
        @Override
        public void onRefreshSuccess() {
            Log.i(TAG,"刷新Session成功");
        }
    
        @Override
        public void onRefreshFailed() {
            Log.i(TAG,"刷新Session失败");
        }
    });
  • 获取会话ID

    添加以下代码,获取当前会话的ID号。

    LoginBusiness.getSessionId();
  • 获取用户信息

    添加以下代码,获取当前登录用户的信息。

    LoginBusiness.getUserInfo();
  • 切换OA语言

    Android App切换SDK语言时会同步切换OA的语言,您无需额外开发。切换SDK语言请参见通用SDK

  • 自定义登录页面

    参照Demo App代码里的SDKInitHelper类postInit方法来定制您的登录页面。获取Demo App源码请参见创建自有App

  • 自定义UI

    请参见定制Android App的OA UI

三方自有账号

在对接三方自有账号之前,须先确认默认的账号页面(内置账号体系)可以正常注册和登录,并完成SDK的初始化。

选择自有账号通过OAuth2.0协议接入,配置流程参见用户账号开发指南

三方自有账号在自有服务器上登录成功之后,获取Authorization Code(请参见用户账号开发指南),然后调用以下方法完成认证。

            LoginBusiness.authCodeLogin(authCode, new ILoginCallback() {
                @Override
                public void onLoginSuccess() {

                }

                @Override
                public void onLoginFailed(int i, String s) {
                    Log.d(TAG, "code: " + i + ", str: " + s);
                }
            });
说明 在调用登录或者登出接口时,直接调用LoginBusiness.login和LoginBusiness.logout两个方法即可。