Jpush3.0消息推送用法总结

本文总结了Jpush3.0的推送用法,包括manifest配置、PushService设置、PushMessageReceiver接收器、TagAliasOperatorHelper的使用以及JPushApply类的直接操作,如注册Tags和Alias,以及如何在Application中初始化和销毁Jpush。
摘要由CSDN通过智能技术生成

目录

一、manifest

二、PushService

三、PushMessageReceiver

四、TagAliasOperatorHelper

五:JPushApply(直接操作类)


一、manifest

   <!-- 网络权限 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <!-- Jpush Required -->
    <permission
        android:name="com.telit.smartclass.desktop.permission.JPUSH_MESSAGE"
        android:protectionLevel="signature" />
    <!-- Jpush Required -->
    <uses-permission android:name="com.zbv.testJpush.permission.JPUSH_MESSAGE" />
    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />     

   <!-- -                  Jpush -->
        <!-- 极光自定义接收广播接收者   这个老版本的,注册了下面的receiver这个就可以不用了 -->
        <receiver
            android:name=".receiver.jpushReceiver"
            android:enabled="true"
            android:exported="false">
            <intent-filter>
                <action android:name="cn.jpush.android.intent.REGISTRATION" /> <!-- Required  用户注册SDK的intent -->
                <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <!-- Required  用户接收SDK消息的intent -->
                <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <!-- Required  用户接收SDK通知栏信息的intent -->
                <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <!-- Required  用户打开自定义通知栏的intent -->
                <action android:name="cn.jpush.android.intent.CONNECTION" /> <!-- 接收网络变化 连接/断开 since 1.6.3 -->
                <category android:name="com.telit.smartclass.desktop" />
            </intent-filter>
        </receiver>

        <!--
        如果你使用的 JCore 是 2.0.0 及以上的版本,需要额外在 Androidmanifest 中配置一个Service,
        以在更多手机平台上获得更稳定的支持,示例如下。(JCore1.x版本不需要)
        -->
        <!-- User defined.  For test only  用户自定义接收消息器,3.0.7开始支持,目前新tag/alias接口设置结果会在该广播接收器对应的方法中回调 -->
        <!-- since 3.3.0 接收JPush相关事件 -->
        <receiver
            android:name=".receiver.PushMessageReceiver"
            android:enabled="true"
            android:exported="false">
            <intent-filter>
                <action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />

                <category android:name="com.telit.smartclass.desktop" />
            </intent-filter>
        </receiver>

        <!-- Since JCore2.0.0 Required SDK核心功能 -->
        <!-- 可配置android:process参数将Service放在其他进程中;android:enabled属性不能是false -->
        <!-- 这个是自定义Service,要继承极光JCommonService,可以在更多手机平台上使得推送通道保持的更稳定 -->
        <service
            android:name=".Service.PushService"
            android:enabled="true"
            android:exported="false"
            android:process=":pushcore">
            <intent-filter>
                <action android:name="cn.jiguang.user.service.action" />
            </intent-filter>
        </service>
        <!-- -                  Jpush -->

二、PushService

package com.telit.zhkt_three.Service;

import cn.jpush.android.service.JCommonService;

/**
 * author: qzx
 * Date: 2019/5/22 9:20
 */
public class PushService extends JCommonService {
}

三、PushMessageReceiver

onNotifyMessageArrived:消息抵达即收到消息
onNotifyMessageOpened:消息打开即点击处理消息
onTagOperatorResult:注册和销毁Tag操作的结果回调
onAliasOperatorResult:注册和销毁Alias操作的结果回调
package com.telit.zhkt_three.receiver;

import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

import com.google.gson.Gson;
import com.telit.zhkt_three.JavaBean.Gson.JpushExtrasInfo;
import com.telit.zhkt_three.R;
import com.telit.zhkt_three.Utils.Jpush.TagAliasOperatorHelper;
import com.telit.zhkt_three.Utils.QZXTools;


import cn.jpush.android.api.CmdMessage;
import cn.jpush.android.api.CustomMessage;
import cn.jpush.android.api.JPushMessage;
import cn.jpush.android.api.NotificationMessage;
import cn.jpush.android.service.JPushMessageReceiver;

/**
 * author: qzx
 * Date: 2019/5/22 9:19
 * <p>
 * 使用新版的tags/alias接收的话,老版的就不再接收到消息
 */
public class PushMessageReceiver extends JPushMessageReceiver {

    public static final String PRIVATE_LETTER = "1005";//私信

    @Override
    public void onMessage(Context context, CustomMessage customMessage) {
        QZXTools.logE("[onMessage] " + customMessage, null);
    }

    @Override
    public void onNotifyMessageOpened(Context context, NotificationMessage message) {
        QZXTools.logE("[onNotifyMessageOpened] " + message, null);
        String extrasInfo = message.notificationExtras;
        Gson gson = new Gson();
        JpushExtrasInfo jpushExtrasInfo = gson.fromJson(extrasInfo, JpushExtrasInfo.class);
        if (jpushExtrasInfo.getWarn() == null || jpushExtrasInfo.getWarn().equals("")) {
            QZXTools.logE("onNotifyMessageOpened warn is null or empty but extral = " + jpushExtrasInfo.getExtra1(), null);
            return;
        }
        switch (jpushExtrasInfo.getWarn()) {
            case PRIVATE_LETTER:
                
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值