橙讯开放平台基线
首页服务端API客户端API附录橙讯官网
首页服务端API客户端API附录橙讯官网
  1. Android应用对接
  • WEB应用对接
    • 对接说明
    • 应用启动
    • 基础接口
      • 获得系统主题
      • 设置工作台角标
      • 扫一扫
      • 拨打电话
    • 导航栏
      • 导航栏
    • 单点登录
      • 单点登录
    • 通讯录
      • 通讯录选人
      • 打开个人信息页
    • 分享转发
      • 分享转发
    • 文件
      • 下载文件
      • 打开本地文件
    • 地理位置
      • 单次定位
      • 持续定位
    • 设备
      • 拨打电话
  • Android应用对接
    • 开发前准备
    • 基础接口
      • 获取账户信息
      • 获取组织信息
      • 设置工作台角标
    • 单点登录
      • 单点登录
    • 通讯录
      • 通讯录选人
      • 打开个人信息页
    • 分享转发
      • 分享转发
    • 文件
      • 打开本地文件
    • 回调
      • 认证过期通知
      • 透传消息
      • 消息中心
      • 打开分享/转发卡片
  • 错误码
    • 错误码
  1. Android应用对接

开发前准备

简介#

在开始接入之前,须在橙讯组织管理后台提交应用信息,并获得相应的 AppKey。
如下是企业自建应用获取应用信息的操作流程。

提交应用信息#

选择添加应用:管理员在橙讯上登录组织管理后台→工作台→为要对接的应用添加对应的自建应用
add.png
上传APK包并填写发布信息说明
appkey.png
提交后生成App信息,可获取App Key
image.png

注册到橙讯#

1.
联系橙讯团队获得SDK。
2.
将下载后的aar库文件添加到androidstudio工程中。如下:
init.png
gradle文件引入 aar。如下:
init2.png
初始化
示例代码如下:
api = CXAPIFactory.createCXAPI(this, AppKey);
api.registerApp(AppKey);
registerReceiver(new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
 
        api.registerApp(AppKey);
    }
}, new IntentFilter(ConstantsAPI.ACTION_REFRESH_CXAPP));
添加入口Activity类
入口类功能是接收橙讯回调和请求。

步骤如下:
1.
在你的包名相应目录下新增一个 CXEntryActivity 类,该类继承自 CXBaseEntryActivity,放置位置为 包名 + .cxapi 下。
如下图:(包名:cn.com.westone.cxjr.a3rdapp)
code.png
2.
在 manifest 文件里面加上exported、taskAffinity及launchMode属性,
其中exported设置为true,taskAffinity设置为你的包名,launchMode设置为singleTask。
清单文件
 <activity android:name="{packagename}.cxapi.CXEntryActivity"
          android:theme="@android:style/Theme.Translucent.NoTitleBar"
          android:exported="true"
          android:taskAffinity="{packagename}"
          android:launchMode="singleTask"  (后期考虑去掉)
  />
3.
实现 CXEntryActivity功能
示例代码如下 (展示从聊天窗口点击分享卡片的处理逻辑):
 public class CXEntryActivity extends CXBaseEntryActivity {
 
    private static final String TAG = "CXEntryActivity";
    private static final String APPKEY = "申请到的appkey";
    private ICXAPI api;

    @Override
    protected void createCXAPI() {
        api = CXAPIFactory.createCXAPI(this, APPKEY);
    }
 
    @Override
    public void onReq(BaseReq req) {
        switch (req.getType()) {
            case COMMAND_SHOW_MESSAGE_FROM_CX: {
                //处理点击分享卡片的逻辑
                ShowMessage.Req showMessageReq = (ShowMessage.Req) req;
                //todo
                 
                //待处理完成后需要发送Response通知橙讯处理结果
                ShowMessage.Resp showMessageResp = new ShowMessage.Resp();
                showMessageResp.transaction = req.transaction; //必须保持和Req一致
                showMessageResp.errorCode = BaseResp.ErrCode.ERR_OK;
                api.sendResp(showMessageResp);
                }
                break;
        }
    }
}

接口调用#

现在,你的程序要发送请求或发送响应到橙讯终端,可以通过 ICXAPI 的 sendReq 和 sendResp两个方法来实现。
boolean sendReq(BaseReq req, ICXAPI.IResponseListener listener);
sendReq 是第三方 app 主动发送消息给橙讯。
如下所示(演示统一身份认证指令的请求):
SendAuth.Req req = new SendAuth.Req();
req.appKey = "app key";
req.enterpriseId = "enterprise id";
api.sendReq(req, new ICXAPI.IResponseListener<SendAuth.Resp>() {
    @Override
    public void onResponse(SendAuth.Resp resp) {
        if(resp.errorCode == BaseResp.ErrCode.ERR_OK) {
            //todo request accesstoken from server by oauthcode
        }else {
            //todo handle error
        }
    }
});
boolean sendResp(BaseResp resp);
sendResp 是当CXEntryActivity收到请求时,待处理完业务后,需要通知橙讯处理结果。
示例如下:
ShowMessage.Req showMessageReq = (ShowMessage.Req) req;     
//待处理完成后需要发送Response通知橙讯处理结果
ShowMessage.Resp showMessageResp = new ShowMessage.Resp();
showMessageResp.transaction = req.transaction; //必须保持和Req一致
showMessageResp.errorCode = BaseResp.ErrCode.ERR_OK;
api.sendResp(showMessageResp);
修改于 2024-09-18 08:52:40
上一页
拨打电话
下一页
获取账户信息
Built with