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

OPPO Push

1. 控制台配置

在 OPPO 开放平台创建应用并开通 OPPO PUSH,确保以下信息与发布应用一致:

  • 应用包名。
  • 发布签名证书。
  • AppKey 和客户端 SDK 注册所需的 AppSecret
  • 消息分类、通知通道和服务与通讯类消息权益。

服务端消息下发使用的 MasterSecret 只能保存在服务端,不能写入 Android 工程或 APK。客户端注册参数随 OPPO Push SDK 版本可能变化,请以 OPPO PUSH 官方文档 为准。

2. 添加依赖

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

imsdk-push-oppo 会传递 imsdk-push 和 OPPO Push SDK。不要在核心 chat 或基础 imsdk-push 中重复加入 OPPO SDK。

3. 注册 Provider

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

kotlin
import com.foreveross.imsdk_push_oppo.api.OppoPush

OppoPush.register(
    context = applicationContext,
    appKey = "<oppo-app-key>",
    appSecret = "<oppo-app-secret>",
)

等价的基础入口为:

kotlin
BimPushManager.getInstance().registerPush(
    context = applicationContext,
    config = OppoPushConfig(
        appKey = "<oppo-app-key>",
        appSecret = "<oppo-app-secret>",
    ),
)

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

4. Manifest 与通知配置

Provider 会通过 Android Library Manifest 合并 OPPO Push 所需组件。宿主不需要复制厂商 Service 声明,但必须:

  • 在宿主主进程初始化 Push。
  • Android 13 及以上申请 POST_NOTIFICATIONS 运行时权限。
  • 按 OPPO 要求创建通知通道,并在 OPPO 控制台或服务端消息中使用一致的通道 ID。
  • 需要透传消息时,按当前 OPPO SDK 要求完成权限和回调配置。

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

5. 状态与点击路由

kotlin
val manager = BimPushManager.getInstance()

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

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

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

6. 排查重点

  • 当前设备是否支持 OPPO Push。
  • 包名、发布签名、AppKey 和客户端注册参数是否属于同一个 OPPO 应用。
  • 是否在主进程、用户同意隐私政策后完成初始化。
  • 通知权限、通知通道和 OPPO 消息分类权益是否正确配置。
  • 是否真实取得 Token;仅 Gradle 构建成功不能证明通知能够送达。
  • 应使用 OPPO 真机完成通知到达和点击路由验证。