小米开放平台
- 登录小米开放平台账号,点击应用服务-消息推送-立即体验
- 创建应用
- 启用推送服务
- 找到APPID、Key 以及 SecretKey。
极光推送
- 创建应用
2.选择推送服务
- 填写App包名,以及勾选配置厂商(此处以小米为例)后,最下方提示尚未配置,点击进行配置
- 填写配置信息(在小米开放平台获取到的 id、secret 以及 key 填写上),点击保存后,右上角会出现一个启用的按钮,点击启用。点击下一步,完成配置。
项目配置
- 在
module
的gradle
中添加依赖等
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "wang"
...
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
// 千万不要去掉前缀` MI- `
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "2e5242949a5d5ecbe70fd034", //JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "developer-default",//暂时填写默认值即可
XIAOMI_APPID : "MI-小米的APPID",
XIAOMI_APPKEY : "MI-小米的APPKEY"
]
}
...
}
dependencies {
...
implementation 'cn.jiguang.sdk:jcore:2.9.0'
implementation 'cn.jiguang.sdk:jpush:4.3.0'
// 接入小米厂商
// 此要与jpush版本号保持一致
implementation 'cn.jiguang.sdk.plugin:xiaomi:4.3.0'
}
- 在
AndroidManifest
中配置一个Service
<!-- Since JCore2.0.0 Required SDK核心功能-->
<!-- 可配置android:process参数将Service放在其他进程中;android:enabled属性不能是false -->
<!-- 这个是自定义Service,要继承极光JCommonService,可以在更多手机平台上使得推送通道保持的更稳定 -->
<service android:name="xx.xx.XService"
android:enabled="true"
android:exported="false"
android:process=":pushcore">
<intent-filter>
<action android:name="cn.jiguang.user.service.action" />
</intent-filter>
</service>
- 在
AndroidManifest
中配置配置继承JPushMessageReceiver
的广播
<!-- Required since 3.0.7 -->
<!-- 新的 tag/alias 接口结果返回需要开发者配置一个自定的广播 -->
<!-- 3.3.0开始所有事件将通过该类回调 -->
<!-- 该广播需要继承 JPush 提供的 JPushMessageReceiver 类, 并如下新增一个 Intent-Filter -->
<receiver
android:name="自定义 Receiver"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
<category android:name="您应用的包名" />
</intent-filter>
</receiver>
- 初始化推送服务
public class ExampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
}
}
- 验证
- 注意:点击通知跳转,获取附加字段
onCreate()
获取getIntent().getExtras().getString("JMessageExtra")
// 通过极光通道点开,获取如下
{"key":"123"}
// 通过厂商通道,获取如下
{
"n_extras": {
"key": "123"
},
"n_title": "通知标题",
"n_content": "通知内容",
"msg_id": 90074111111111,
"rom_type": 1,
"_j_data_": "{\"data_msgtype\":1,\"push_type\":4,\"is_vip\":0}"
}