# OPPO推送 - 通讯与服务类消息配置说明

## 问题描述

当前推送的消息是"内容与运营"类型，只有声音提醒，灭屏时没有强提醒。
需要发送"通讯与服务"类型的消息，实现：
- 离线消息强提醒
- 通知栏、锁屏、铃声、振动

## 解决方案

OPPO SDK 的 `Notification` 类不支持设置通讯与服务类消息的关键参数，需要使用 HTTP API 直接发送。

## 需要设置的参数

1. **channel_id**: `"previte_message"` - 通讯与服务频道ID（必须）
2. **channel_name**: `"消息推送"` - 频道名称（必须）
3. **category**: `"IM"` - 消息类别，IM表示即时聊天、音频、视频通话（必须）
4. **notify_level**: `2` - 通知级别，2表示通知栏、锁屏、铃声、振动（必须）

## 实现方式

由于 `push_server-master` 项目使用的是 OPPO SDK，而 SDK 的 `Notification` 类不支持这些参数，需要：

### 方案1: 修改为使用 HTTP API（推荐）

修改 `OppoPush.java`，添加使用 HTTP API 发送通讯与服务类消息的方法。

### 方案2: 通过 API 直接调用（临时方案）

不修改代码，直接通过 HTTP API 发送通讯与服务类消息。

## 直接使用 HTTP API 发送的示例

```bash
# 1. 先获取 auth_token
curl -X POST "https://api.push.oppomobile.com/server/v1/auth" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "app_key=bb0819c889ae40cd8bde5a8ad4e670fe&timestamp=$(date +%s)000&sign=生成的签名"

# 2. 使用 auth_token 发送通讯与服务类消息
curl -X POST "https://api.push.oppomobile.com/server/v1/message/notification/unicast" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "message={\"target_type\":1,\"target_value\":\"OPPO_CN_95ac9afc103d70bb26441ec0cbb06b97\",\"notification\":{\"title\":\"知你\",\"content\":\"我是api\",\"channel_id\":\"previte_message\",\"channel_name\":\"消息推送\",\"category\":\"IM\",\"notify_level\":2,\"offLine\":true,\"offLineTtl\":86400,\"showTimeType\":0,\"networkType\":0}}&auth_token=你的auth_token"
```

## 注意事项

1. **频道ID必须正确**: `channel_id` 必须设置为 `"previte_message"`，这是 OPPO 系统识别的通讯与服务类消息标识
2. **频道名称**: `channel_name` 必须设置为 `"消息推送"`
3. **通知级别**: `notify_level` 设置为 `2` 才能实现通知栏、锁屏、铃声、振动的强提醒
4. **类别**: `category` 设置为 `"IM"` 表示即时聊天、音频、视频通话类消息
5. **离线消息**: `offLine` 设置为 `true`，`offLineTtl` 建议设置为 `86400`（24小时）

## 验证方法

发送通讯与服务类消息后，应该：
1. ✓ 在灭屏状态下有声音和振动提醒
2. ✓ 在锁屏界面显示通知
3. ✓ 在通知栏显示消息
4. ✓ 消息被分类为"通讯与服务"类型

## 下一步

需要修改 `push_server-master/src/main/java/cn/wildfirechat/push/android/oppo/OppoPush.java`，添加使用 HTTP API 发送通讯与服务类消息的功能。

