Android第三方平台----极光推送

在Android App中,经常受到各类推送,在手机息屏时,也能接收到像微博等等软件的推送消息,这一项技术是Android中必不可少的。

1、推送的实现

推送的实现有2种方式:客户端定时轮询(pull)和服务器主动推送(push)

(1)客户端定时轮询:客户端每次按照一定的时间间隔,去服务器查看是否有新的数据,如果有新的数据,那么就将新的数据拉取过来显示在服务器。但是这种方式存在的致命缺陷就是,如果数据的更新存在延时,当客户端去服务器查询数据时,没有更新数据,那么客户端就无法及时获取到数据,而出现异常,然而为了得到更新数据,而去频繁地向服务器读数据,将会非常消耗客户端的资源和性能。

(2)服务器主动推送:这种方式是当前主流的推送方式,客户端和服务器保持长连接,当服务器有新的数据更新时,会即时发送到客户端,当客户端接收到数据时,就会更新,而不需要频繁地去服务器查询数据;但这种方式同样也会存在弊端,因为保持了长连接,在多并发的环境下,会给服务器造成巨大的压力。

2、极光推送

目前在国内推送平台,极光推送是用户量最大的第三方平台。

(1)去极光推送平台,选择注册账号,创建应用,完成配置
在这里插入图片描述
(2)集成Android SDK
在这里插入图片描述
在SDK文件夹中,包含多种CPU架构,选择合适的.so文件集成到项目中(src/main/jniLibs);下面两个jar包,分别是极光推送的核心包和开发包,这部分放在libs目录下,并添加依赖。

(3)配置AndroidManifest文件

将SDK文件夹下的清单文件中的代码全部复制到项目的清单文件中,做相应的修改,当中关于测试的部分可以删除不要。

(4)将资源文件导入项目

在SDK文件夹下的res目录下的资源文件,全部导入项目当中。

(5)自定义广播接收器

<!-- User defined.  For test only  用户自定义的广播接收器-->
        <receiver
            android:name="com.example.jpushdemo.MyReceiver"
            android:enabled="true">
            <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="${applicationId}" />
            </intent-filter>
        </receiver>



        <!-- User defined.  For test only  用户自定义接收消息器,3.0.7开始支持,目前新tag/alias接口设置结果会在该广播接收器对应的方法中回调-->
        <!--since 3.3.0 接收JPush相关事件-->
        <receiver android:name="com.example.jpushdemo.PushMessageReceiver">
            <intent-filter>
                <action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
                <category android:name="${applicationId}"></category>
            </intent-filter>
        </receiver>

当前面的工作完成之后,在清单文件中只剩下广播接收器需要自行配置。
从SDK的demo中,可以选择复制其中的MyReceiver,修改部分代码。
最后配置一下极光推送开发者平台的Appkey即可。

<!-- Required  . Enable it you can get statistics data with channel -->
        <meta-data android:name="JPUSH_CHANNEL" android:value="channel"/>
        <meta-data android:name="JPUSH_APPKEY" android:value="开发者平台的AppKey" /> <!--  </>值来自开发者平台取得的AppKey-->

(6)在Applicaiton中初始化极光推送

//初始化极光推送
        JPushInterface.init(this);
        //日志
        JPushInterface.setDebugMode(true);

3、极光推送测试

完成以上配置之后,可以进行推送测试
在这里插入图片描述
在这里插入图片描述
当去测试时,发现极光推送用户并没有注册成功,发送推送时,“预估人数为0”,这个问题还是在AndroidManifest文件中的配置出现了问题。

之前在配置时,并没有配置PushServicePushMessageReceiver,在极光3.0.0和核心包jCode2.0.0之前,不需要配置;但是在之前的环节中,引入的jar包均高于这几个版本,因此需要配置。

PushService需要继承自JCommonService,一般是个空方法;PushMessageReceiver需要继承自JPushMessageReceiver,配置完成之后,就可以看到注册成功 了。

在这里插入图片描述
发送推送,客户端接收到推送消息
在这里插入图片描述
以上只是极光推送的简单使用,后续在项目中使用时将会详细介绍

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Awesome_lay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值