Android

最近更新时间:2025-07-14 19:43:43

我的收藏
当您成功预定课堂后,Classroom 组件将在课堂开始前10分钟向上课成员推送课前前提醒消息。本文档将指引您接入 TIMPush 推送插件,以开启课前提醒功能。

功能介绍

在进行离线推送功能的集成前,请确保已按照官方文档完成 厂商配置,以确保 Classroom 的离线推送功能正常运行。
Classroom 接入 TIMPush 推送插件的效果如下(以小米手机 Redmi Note 8 Pro 的显示效果为例):
应用在后台时或离线时
锁屏时







功能接入

1. 请参见推送插件 TIMPush 快速接入文档,完成除步骤6以外的所有步骤(Classroom 组件内部已经进行课前提醒的离线消息推送,所以步骤6不需要单独配置)。
2. (可选) 若您想实现点击通知立即上课,可参考以下代码,注册回调时机建议放在应用 Application 的 onCreate() 函数中:
TUICore.registerEvent(TUIConstants.TIMPush.EVENT_NOTIFY, TUIConstants.TIMPush.EVENT_NOTIFY_NOTIFICATION, new ITUINotification() {
@Override
public void onNotifyEvent(String key, String subKey, Map<String, Object> param) {
if (TUIConstants.TIMPush.EVENT_NOTIFY.equals(key) && TUIConstants.TIMPush.EVENT_NOTIFY_NOTIFICATION.equals(subKey)) {
if (param != null) {
String extString = (String) param.get(TUIConstants.TIMPush.NOTIFICATION_EXT_KEY);
try {
// 可根据您的业务,点击通知跳转到相应的界面,以下是跳转到课堂的示例。
JSONObject roomObject = new JSONObject(extString);
String roomId = roomObject.getString("RoomId");
if (!TextUtils.isEmpty(roomId)) {
loginAndEnterRoom(roomId);
}
} catch (Exception e) {
}
}
}
}
});

private void loginAndEnterRoom(String roomId) {
int sdkAppId = "您的appId";
String userId = "您的UserId"
String userSig = GenerateTestUserSig.genTestUserSig(userId);
// 登录
TUILogin.login(this.getApplicationContext(), sdkAppId, userId, userSig, new TUICallback() {
@Override
public void onSuccess() {
// 登录成功后进入课堂
ConferenceDefine.JoinConferenceParams params = new ConferenceDefine.JoinConferenceParams(roomId);
Intent intent = new Intent(getApplicationContext(), ConferenceMainActivity.class);
intent.putExtra(KEY_JOIN_CONFERENCE_PARAMS, params);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(intent);
}
@Override
public void onError(int errorCode, String errorMessage) {
}
});
}
注意:
若您想实现点击推送进入课堂,必须上课前完成登录

常见问题

1. 若在集成过程中遇到问题,请务必先查阅 插件推送-常见问题 进行自助排查。
2. 条件说明:部分厂商要求必须上架应用市场才可以正常使用推送服务,详情参见下表:
厂商通道
是否需要上架
账号说明
小米
需要注册企业开发者账号
VIVO
需要注册企业开发者账号
OPPO
需要注册企业开发者账号
荣耀
需要注册企业开发者账号
华为
个人开发者账号即可
魅族
个人开发者账号即可

功能定制

如果您想自定义课前提醒时间,您可以通过修改源码来实现。可通过修改 ScheduleConferenceView.java 中 REMINDER_TIME 成员变量的值,设置课前提醒的时间(秒)。
注意:
若课前提醒的时间大于课堂预定的时间,则不会推送课前提醒的通知。

关键代码

课前提醒时间的设置,请参见:
public abstract void scheduleConference(ConferenceInfo conferenceInfo, TUIRoomDefine.ActionCallback callback);
您可以通过修改 conferenceInfo 的 reminderSecondsBeforeStart 字段设置课前提醒时间(秒),详情请参见 scheduleConference 。示例代码如下:
TUIConferenceListManager manager = (TUIConferenceListManager) TUIRoomEngine.sharedInstance().getExtension(CONFERENCE_LIST_MANAGER);
TUIConferenceListManager.ConferenceInfo conferenceInfo = new TUIConferenceListManager.ConferenceInfo();
conferenceInfo.basicRoomInfo.roomId = "您的roomId";
conferenceInfo.reminderSecondsBeforeStart = 600; // 请替换600为您的课前提醒时间
manager.scheduleConference(conferenceInfo, new TUIRoomDefine.ActionCallback() {
@Override
public void onSuccess() {
// 预定课堂成功回调
}

@Override
public void onError(TUICommonDefine.Error error, String message) {
// 预定课堂失败回调
}
});