本 SDK 主要提供了AIE智能点读笔常用的五大模块接口
-
账号管理
- 登录
- 登出
- 设置操作设备
- 当前操作设备ID
-
设备管理
- 获取设备列表
- 获取设备详情
- 获取设备硬件信息
- 修改设备音量
- 修改设备名称
- 解除设备绑定
-
学习报告
- 已读绘本列表(按日期查询、倒叙分页查询)
- 各项学习数据(跟读)(按日期查询、倒叙分页查询)
- 各项报告趋势(点读、跟读、学习时长、阅读绘本数)
-
绘本管理
- 全部绘本
- 搜索绘本
- 设备已添加绘本
- 绘本或点读包详情
- 下载绘本或点读包
- 删除绘本或点读包(单本、批量)
- 获取设备存储空间状态
- 全部点读包
- 已下载点读包
-
同步课堂
- 设置个推ID
- 同步课堂开关
- 同步课堂心跳
implementation 'io.reactivex:rxandroid:1.1.0'
implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
implementation(name: 'blufilibrary', ext: 'aar')//蓝牙配网依赖库,文件位于Demo的libs目录
implementation(name: 'stpsdk-最新版本号', ext: 'aar')
/**
* StpSDK初始化
*
* @param context
* @param packageId 平台分配的packgeId
* @param env (测试:SDKConfig.ENV_TEST ,线上:ENV_SDKConfig.ENV_ONLINE)
*/
StpSDK.getInstance().init(this, PACKAGE_ID, SDKConfig.ENV_ONLINE);
注意:使用第三方鉴权登录前,需要双方服务器端研发先联调完服务器间鉴权接口
AIE账号登录
AuthManager.login(context, 手机号, 密码, 回调)
第三方登录接口
AuthManager.loginEx(context, 客户用户唯一标识, 客户用户鉴权码, 回调) {
AuthManager.setDeviceInfo(设备ID,设备APPId);
### 1.接入SdkDemo中的blufilibrary.aar
### 2.参考com.aiedevice.sdkdemo.activity.blufi目录下有完整配网代码,请参考
注册方式有2种,
1. 未登录时已经获得个推clientId,在第三方登录接口时注册:AuthManager.loginEx
/**
* 第三方登录接口
*
* @param userId 客户用户唯一标识
* @param thirdCode 客户用户鉴权码
* @param pushId 个推(第三方长连接服务商)生成的ClientId,(*非必须,接入同步课堂相关功能需要*)
* @param listener
*/
public static void loginEx(Context context, String userId, String thirdCode, String pushId, CommonResultListener<BeanLoginData> listener) {
2.独立设置个推clientId:ClassRoomManager.setPushId
/**
* 设置个推推送ID
*
* @param pushId 个推(第三方长连接服务商)生成的ClientId
* @param listener
*/
public static void setPushId(Context context, String pushId, ResultListener listener)
/**
* 同步课堂开关
*
* @param context
* @param isOpen true:开 false:关
* @param listener
*/
public static void syncSwitch(Context context, boolean isOpen, ResultListener listener)
/**
* 同步课堂心跳,业务端30秒轮训一次,弱超过30S*2未发送心跳,则服务器关闭同步课堂不再发送长连接
*
* @param context
* @param listener
*/
public static void sendSyncHeartbeat(Context context, ResultListener listener)
/**
* AIE账号登录
*
* @param context
* @param phone 手机
* @param password 密码
* @param listener
*/
public static void login(Context context, String phone, String password, CommonResultListener<BeanLoginData> listener)
/**
* 第三方登录接口
*
* @param userId 客户用户唯一标识
* @param thirdCode 客户用户鉴权码
* @param listener
*/
public static void loginEx(Context context, String userId, String thirdCode, CommonResultListener<BeanLoginData> listener)
/**
* 第三方登录接口
*
* @param userId 客户用户唯一标识
* @param thirdCode 客户用户鉴权码
* @param pushId 个推(第三方长连接服务商)生成的ClientId,(*非必须,接入同步课堂相关功能需要*)
* @param listener
*/
public static void loginEx(Context context, String userId, String thirdCode, CommonResultListener<BeanLoginData> listener)
/**
* 登出接口
*
* @param listener
*/
public static void logout(Context context, ResultListener listener)
/**
* 设置接口操作的设备信息
*
* @param deviceID 设备ID
* @param appID 设备所属的appID
*/
public static void setDeviceInfo(String deviceID, String appID)
/**
* 获取当前操作的设备ID
* @return
*/
public static String getDeviceId()
/**
* 登录返回常用信息
*/
public class BeanLoginData {
private List<BeanDeviceDetail> devices;//绑定设备列表,BeanDeviceDetail详见设备管理模块的常用对象
}
/**
* 获取设备列表
*
* @param listener
*/
public static void getDeviceList(Context context, CommonResultListener<BeanDeviceList> listener)
/**
* 获取设备详情
* @param context
* @param listener
*/
public static void getDeviceDetail(Context context, CommonResultListener<BeanDeviceDetail> listener)
/**
* 获取设备硬件信息
* @param context
* @param listener
*/
public static void getDeviceHardwareInfo(Context context, CommonResultListener<BeanDeviceHardwareList> listener)
/**
* 修改设备音量
* @param context
* @param volume 音量值
* @param listener
*/
public static void changeDeviceVolume(Context context, int volume, ResultListener listener)
/**
* 修改设备名称
* @param context
* @param deviceName 设备名称
* @param listener
*/
public static void updateDeviceName(Context context, String deviceName, ResultListener listener)
/**
* 解除设备绑定
* @param context
* @param listener
*/
public static void deleteDevice(Context context, ResultListener listener)
/**
* 上传设备日志
* @param context
* @param listener
*/
public static void uploadDeviceLog(Context context, ResultListener listener)
/**
* 设备详细信息
*/
public class BeanDeviceDetail {
private String id;//设备ID
private String appId;//设备所属AppId
private String name;//设备昵称
private boolean online;//是否在线
private int volume;//当前音量
private String wifissid;//当前连接wifi名称
private int battery;//电量 0 - 100
}
/**
* 设备硬件信息集合
*/
public class BeanDeviceHardwareList {
List<BeanDeviceHardwareAttr> list;
}
/**
* 设备硬件信息属性(wifi名称、IP地址、Mac地址、设备类型、设备ID)
*/
public class BeanDeviceHardwareAttr {
String key;
String val;
}
/**
* 已读绘本列表(按数量查询)
*
* @param from 最后一条的id,默认值0,表示获取首页
* @param size 返回多少条数据
* @param listener
*/
public static void getPicBookList(Context context, int from, int size, CommonResultListener<List<BeanReportBookList>> listener)
/**
* 已读绘本列表(按时间查询)
*
* @param startDate 开始时间,格式"yyyy-MM-dd"
* @param endDate 截止时间,格式"yyyy-MM-dd"
* @param listener
*/
public static void getPicBookList(Context context, String startDate, String endDate, CommonResultListener<List<BeanReportBookList>> listener)
/**
* 学习报告(按数量查询)
*
* @param type TYPE_FOLLOW_READING:跟读次数
* @param withDetail 1:返回详情 0:没有详情
* @param from 从第几条数据开始
* @param size 返回多少条数据
* @param listener
*/
public static void getReportList(Context context, String type, int withDetail, int from, int size, CommonResultListener<List<BeanReportList>> listener)
/**
* 学习报告(按时间查询)
*
* @param type TYPE_FOLLOW_READING:跟读次数
* @param withDetail 1:返回详情 0:没有详情
* @param startDate 开始时间,格式"yyyy-MM-dd"
* @param endDate 截止时间,格式"yyyy-MM-dd"
* @param listener
*/
public static void getReportList(Context context, String type, int withDetail, String startDate, String endDate, CommonResultListener<List<BeanReportList>> listener)
/**
* 报告趋势(按时间查询)
*
* @param type StudyConstants.TYPE_POINT_READING:点读次数,TYPE_FOLLOW_READING:跟读次数,
* StudyConstants.TYPE_DURATION:学习时长,TYPE_PIC_BOOK:阅读绘本
* @param startDate 开始时间,格式"yyyy-MM-dd"
* @param endDate 截止时间,格式"yyyy-MM-dd"
* @param listener
*/
public static void getReportTrend(Context context, String type, String startDate, String endDate, CommonResultListener<BeanReportTrend> listener)
/**
* 已阅读书籍列表
*/
public class BeanReportBookList {
int id;
String name;//日期(yyyy-MM-dd)
BeanReportBookListExtra extra;//已阅读书籍详细信息
List<BeanBookDetail> books;//书籍详情,参见绘本管理的常用对象
}
/**
* 已阅读书籍详细信息
*/
public class BeanReportBookListExtra{
String[] bookIds;//阅读的图书id数组
int bookCnt;//阅读的图书数量
int pointReadingCnt;//点读次数
int followReadingCnt;//跟读次数
int duration;//学习时长
}
/**
* 学习报告列表
*/
public class BeanReportList {
String type;//报告类型(follow-reading:跟读次数)
String name;日期(yyyy-MM-dd)
BeanReportListExtra extra;//学习报告详情
}
/**
* 学习报告详情
*/
public class BeanReportListExtra {
int cnt;
List<BeanFollow> list;
}
/**
* 跟读详情
*/
public class BeanFollow {
String book_id;//书籍id
String oid;//点位id
String text;//跟读文本
String url;//跟读录音
int score;//跟读得分
}
/**
* 报告趋势
*/
public class BeanReportTrend {
int total;//总趋势记录数条数
List<BeanReportTrendDay> list;// 报告趋势详情集合
}
/**
* 报告趋势详情
*/
public class BeanReportTrendDay {
String day;
int value;
}
/**
* 获取全部绘本列表
*
* @param context
* @param from 最后一条的id,默认值0,表示获取首页
* @param size 返回多少条数据
* @param listener
*/
public static void getAllBookList(Context context, int from, int size, CommonResultListener<BeanBookListResult> listener)
/**
* 按关键字搜索绘本
*
* @param context
* @param keyword
* @param listener
*/
public static void searchBook(Context context, String keyword, CommonResultListener<BeanBookListResult> listener)
/**
* 获取设备已添加绘本列表
*
* @param context
* @param from 最后一条的id,默认值0,表示获取首页
* @param size 返回多少条数据
* @param listener
*/
public static void getDeviceBookList(Context context, int from, int size, CommonResultListener<BeanDeviceBookListResult> listener)
/**
* 获取绘本或点读包详情
*
* @param context
* @param mid 书ID
* @param listener
*/
public static void getBookDetail(Context context, String mid, CommonResultListener<BeanBookFullDetail> listener)
/**
* 下载绘本或点读包
*
* @param context
* @param mid 书ID
* @param listener
*/
public static void downloadBook(Context context, String mid, ResultListener listener)
/**
* 删除设备已下载绘本或点读包
*
* @param context
* @param mid 书ID
* @param listener
*/
public static void deleteBook(Context context, String mid, ResultListener listener)
/**
* 批量删除设备已下载绘本或点读包
*
* @param context
* @param bookIdList 书ID集合(一次最多10个id)
* @param listener
*/
public static void deleteBookList(Context context, List<String> bookIdList, ResultListener listener)
/**
* 获取设备sdcard状态(总容量,剩余容量,数据单位是M)
*
* @param context
* @param listener
*/
public static void getDeviceStorage(Context context, CommonResultListener<BeanStorageStatus> listener)
/**
* 获取全部点读包列表
*
* @param context
* @param from 最后一条的id,默认值0,表示获取首页
* @param size 返回多少条数据
* @param listener
*/
public static void getAllReadingPackage(Context context, int from, int size, CommonResultListener<BeanBookListResult> listener)
/**
* 获取下载的点读包列表
*
* @param context
* @param from 最后一条的id,默认值0,表示获取首页
* @param size 返回多少条数据
* @param listener
*/
public static void getDeviceReadingPackage(Context context, int from, int size, CommonResultListener<BeanDeviceBookListResult> listener)
/**
* 绘本列表
*/
public class BeanBookListResult {
private List<BeanBookDetail> list;//绘本集合
private int total;//数据总数
}
/**
* 列表返回的绘本/点读包详情
*/
public class BeanBookDetail {
private int id;
private String bookName;
private String author;
private String cover;
private String mid;
private long size; //点读包 大小 字节
private int status; //添加状态 0未添加 1已添加
private int downloadable; //是否可以下载 0否 1是
}
/**
* 设备内的绘本/点读包列表
*/
public class BeanDeviceBookListResult{
private List<BeanDeviceBookInfo> list;//绘本集合
private int total;//数据总数
}
/**
* 设备内的绘本/点读包详情
*/
public class BeanDeviceBookInfo {
private int id;
private String bookName;
private String author;
private String cover;
private String mid;
private long size; //点读包 大小 字节
private int status;//下载状态 0等待下载 1下载中 2下载完成 3下载失败
private int progress;//下载进度 0-100
}
/**
* 绘本/点读包完整信息
*/
public class BeanBookFullDetail{
private int id;
private String mid;
int dbId;
private int progress;
private String bookName;
private String author;
private String cover;
private long size;
private int status; //添加状态 0未添加 1已添加
private String readGuideHtml; //图文简介
private int downloadable; //是否可以下载 0否 1是
private int downloadStatus; //下载状态 0等待下载 1下载中 2下载完成 3下载失败
private List<BeanBuyUrl> buyUrls;//购买链接
}
/**
* 点读笔存储状态
*/
public class BeanStorageStatus {
private int memoryTotal;//总存储空间(单位M)
private int memoryUsed;//已使用存储空间(单位M)
}
/**
* 设置个推推送ID
*
* @param pushId 个推(第三方长连接服务商)生成的ClientId
* @param listener
*/
public static void setPushId(Context context, String pushId, ResultListener listener)
/**
* 同步课堂开关
*
* @param context
* @param isOpen true:开 false:关
* @param listener
*/
public static void syncSwitch(Context context, boolean isOpen, ResultListener listener)
/**
* 同步课堂心跳,业务端30秒轮训一次,若超过30S*2未发送心跳,则服务器关闭同步课堂不再发送长连接
*
* @param context
* @param listener
* @return
*/
public static boolean sendSyncHeartbeat(Context context, ResultListener listener)