账号模块
账号模块支持自有账号登录和喜马账号登录。
自有账号登录(即Credential登录)
(1)适用范围:接入方有自己的账号体系和服务器,具备服务端开发能力。
(2)技术原理:此方式将接入方账号体系与小雅OS账号体系进行关联,在小雅OS开放平台-硬件开放平台-配置服务中配置校验credential的接口url后,接入方自行设计并实现credential的生成及接口校验。

XYMobileSdk.getAccountSdk().loginByCredential(String ptfId, String credential, TokenCallBack callback);
喜马账号登录
(1)适用范围:适用于接入方没有自己的账户体系,有C端用户个性化相关需求也建议采用该方式。
(2)技术原理:
- 开发者需先从喜马拉雅开放平台获取appKey,appSecret。(注意:是喜马拉雅开放平台,而不是小雅OS开放平台)进入喜马拉雅开放平台-应用中心,注册移动应用并提交审核,其中回调地址填写小雅OS开放平台分配的RedirectUri,审核通过后可开始开发调试/正式使用。
- 使用此登录模式,用户首先登录喜马拉雅账户,之后用喜马拉雅accessToken换取小雅OS的osAccessToken。
- 喜马拉雅开放平台SDK集成了喜马拉雅的Oauth2登录,用户通过SDK获取到喜马拉雅accessToken后可以直接通过第三方登录接口换取小雅OS的osAccessToken。

XYMobileSdk.getAccountSdk().loginByXM(String ptfId, String xmToken, String xmUid, TokenCallBack callback);
刷新token
通常不会用到这个接口。sdk内部在每次调接口之前会判断token是否过期,若过期则会自动刷新token,token过期时间为2小时。
XYMobileSdk.getAccountSdk().refreshToken(TokenCallBack callback);
自定义token获取途径
在手机助手场景上,由c++层维护账号模块和token。此时,伴侣sdk不必登录,而是通过ITokenProvider,从外部获取token。
interface ITokenProvider {
    String getAccessToken();
}
XYMobileSdk.getAccountSdk().setTokenProvider(ITokenProvider tokenProvider);
绑定喜马账号
使用手机助手可以绑定喜马账号,领取喜马会员(音箱对应sn有会员才可以领),享受会员专享资源。
| 参数 | 类型 | 是否必要 | 简述 | 
|---|---|---|---|
| context | Context | 是 | SDK版本信息 | 
| title | String | 是 | 喜马绑定页的标题 | 
| url | String | 是 | 绑定页的url,在获取“喜马账号绑定状态信息“详见bindXimaAccountInfo接口中返回 | 
| sn | String | 是 | 音箱的sn号 | 
| type | int | 是 | 字段预留,主要用于区分客户类型的 | 
interface SimpleCallback {
    void onSucceed();
    void onFailed(int code, String msg);
}
XYMobileSdk.getAccountSdk().bindXimaAccount(Context context, String title, String url,String sn, int type, SimpleCallback callback);
解绑喜马账号
传skillId解除喜马绑定
XYMobileSdk.getAccountSdk().unbindXimaAccount(String skillId, JsonXYCallback<SkillLogoutResult> callback);
获取喜马账号绑定状态信息
XYMobileSdk.getAccountSdk().bindXimaAccountInfo(JsonXYCallback<SkillCenterDetailBean.LoginDetail> callback);
LoginDetail
{
  "skillPtfId" : os.ptf.xmly.testsdkdemo
  "h5": {
  "loginPage": "https://api.xiaoyastar.com/open/skill-login/h5?osAccessToken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjgxNjI1NTgsInNraWxsSWQiOiJvcy5za2lsbC4xNCIsImlzcyI6Inh5LW9zLXVjZW50ZXIiLCJkZXZpY2VJZCI6ImU4ZTY1NjljMWI4ZGRhYjMifQ.gRQETHEpfB6AOJEqvA9n-7wLifewo6jR7yokPUH5LbA"    //请求喜马账号绑定的url,status未0时返回
  },
  "nickName": "unknown",    //昵称
  "status" : 0    //登录状态 0:未绑定  1:已经绑定 2:无需绑定
}