Skip to content
v1
文档/Android SDK/开发指南

荣耀 Push

1. 控制台配置

在荣耀开发者服务平台创建应用并开通 HONOR Push,确保以下信息与发布应用一致:

  • AppId
  • Android 包名。
  • 发布签名证书指纹。
  • 消息分类和服务与通讯类消息权益。

服务端使用的 ClientSecret 只能保存在服务端。客户端 SDK、插件及配置文件以 荣耀 Push SDK 集成文档 为准。

2. 添加依赖

kotlin
dependencies {
    implementation("com.beework.im:chat:<version>")
    implementation("com.beework.im:imsdk-push:<version>")
    implementation("com.beework.im:imsdk-push-honor:<version>")
}

imsdk-push-honor 会传递 imsdk-push 和 HONOR Push SDK。荣耀 Maven 仓、mcs-services.jsoncom.hihonor.mcs.asplugin 仍由宿主按荣耀官方要求配置。

3. 配置应用参数

在宿主 application 下配置 AppId

xml
<meta-data
    android:name="com.hihonor.push.app_id"
    android:value="${HONOR_PUSH_APP_ID}" />

如果使用荣耀提供的 mcs-services.json,请将文件放到宿主模块要求的位置,并配置与当前荣耀文档匹配的插件版本。

4. 注册 Provider

建议在 Application.onCreate() 中、用户同意隐私政策后注册:

kotlin
import com.foreveross.imsdk_push_honor.api.HonorPush

HonorPush.register(
    context = applicationContext,
)

等价的基础入口为:

kotlin
BimPushManager.getInstance().registerPush(
    context = applicationContext,
    config = HonorPushConfig,
)

注册默认会初始化 HONOR Push 并请求 Token。只初始化而不自动请求时传入 autoRegister = false

5. Manifest 与进程

Provider 会通过 Android Library Manifest 合并 HonorMessageService 和必要组件。宿主不需要复制消息 Service 声明,但必须:

  • 在宿主主进程初始化 Push。
  • Android 13 及以上申请 POST_NOTIFICATIONS 运行时权限。
  • targetSdkVersion >= 30 时保证荣耀 Push 查询声明进入最终 Manifest。
  • 按荣耀官方要求配置混淆规则、Maven 仓和可选插件。

收到 Token 后,imsdk-push 会负责缓存、去重、绑定当前 IM 账号并同步服务端。

6. 状态与点击路由

kotlin
val manager = BimPushManager.getInstance()

manager.addListener { diagnostic ->
    if (diagnostic.provider == BimPushProvider.HONOR) {
        println("honor push status=${diagnostic.status}")
    }
}

manager.addPushClickListener { event ->
    // 使用 event.uri / event.extras 打开业务页面
}

荣耀通知点击由 Provider 转换为统一的 BimPushClickEvent,宿主负责最终业务路由。Token、ClientSecret 和业务 payload 不要输出到日志。

7. 排查重点

  • 当前设备和系统版本是否支持 HONOR Push。
  • AppId、包名和发布签名是否属于同一个荣耀应用。
  • mcs-services.json、插件、Manifest 和混淆配置是否正确。
  • 荣耀消息分类权益和通知权限是否满足当前官方要求。
  • 是否真实取得 Token;仅 Gradle 构建成功不能证明通知能够送达。
  • 应使用荣耀真机完成通知到达和点击路由验证。