设置和获取推送通知的显示属性
大约 2 分钟
Android 集成文档
设置和获取推送通知的显示属性
设置推送通知的显示属性
调用 updatePushNickname 方法设置推送通知中显示的昵称,如以下代码示例所示:
// 需要异步处理。
EMClient.getInstance().pushManager().updatePushNickname("pushNickname");
调用 updatePushDisplayStyle 设置推送通知的显示样式,如下代码示例所示:
// 设置为简单样式。
EMPushManager.DisplayStyle displayStyle = EMPushManager.DisplayStyle.SimpleBanner;
// 需要异步处理。
EMClient.getInstance().pushManager().updatePushDisplayStyle(displayStyle);
若要在通知栏中显示消息内容,需要设置通知显示样式 DisplayStyle。DisplayStyle 是枚举类型,有如下两种设置:
| 参数值 | 描述 |
|---|---|
(默认)SimpleBanner | 不论 nickname 是否设置,对于推送任何类型的消息,通知栏采用默认显示设置,即推送标题为您有一条新消息,推送内容为请点击查看。 |
MessageSummary | MessageSummary:显示消息内容。设置的昵称只在 DisplayStyle 为 MessageSummary 时生效,在 SimpleBanner 时不生效。 |
下表以单聊文本消息为例介绍显示属性的设置。
对于群聊,下表中的消息发送方的推送昵称和消息发送方的 IM 用户 ID显示为群组 ID。
| 参数设置 | 推送显示 | 图片 |
|---|---|---|
- DisplayStyle:(默认)SimpleBanner- nickname:设置或不设置 | - 推送标题:您有一条新消息 - 推送内容:请点击查看 | ![]() |
- DisplayStyle:MessageSummary- nickname:设置具体值 | - 推送标题:您有一条新消息 - 推送内容:消息发送方的推送昵称:消息内容 | ![]() |
- DisplayStyle:MessageSummary- nickname:不设置 | - 推送标题:您有一条新消息 - 推送内容:消息发送方的 IM 用户 ID: 消息内容 | ![]() |
获取推送通知的显示属性
你可以调用同步方法 EMPushManager#getPushConfigsFromServer 从服务器获取推送通知的显示属性。该方法会阻塞当前线程,请勿在主线程中调用。
try {
EMPushConfigs pushConfigs = EMClient.getInstance()
.pushManager()
.getPushConfigsFromServer();
// 获取推送显示昵称。
String nickname = pushConfigs.getDisplayNickname();
// 获取推送通知的显示样式。
EMPushManager.DisplayStyle style = pushConfigs.getDisplayStyle();
} catch (HyphenateException e) {
// 获取推送配置失败。
}
自 4.24.0 版本开始,SDK 新增异步方法 EMPushManager#asyncGetPushConfigsFromServer。该方法不会阻塞当前线程。获取成功时,SDK 通过 onSuccess 回调返回推送配置;获取失败时,通过 onError 回调返回错误码和错误信息。
EMClient.getInstance().pushManager().asyncGetPushConfigsFromServer(
new EMValueCallBack<EMPushConfigs>() {
@Override
public void onSuccess(EMPushConfigs pushConfigs) {
// 获取推送显示昵称。
String nickname = pushConfigs.getDisplayNickname();
// 获取推送通知的显示样式。
EMPushManager.DisplayStyle style = pushConfigs.getDisplayStyle();
}
@Override
public void onError(int errorCode, String errorMessage) {
// 获取推送配置失败。
}
}
);
同步方法会等待服务器返回结果并可能阻塞当前线程;异步方法会立即返回,并通过回调通知调用结果。建议在主线程中使用异步方法。



