如何接入极光推送

一.背景介绍

在Android开发中,服务器有时候会向客户端推送一些用户可能感兴趣的消息,比如:淘宝,网易新闻,美团等都会向我们客户端推送消息.但是自己实现一个消息推送的代价太高,今天我就介绍一个第三方免费推送消息的服务:极光推送

二.官方资源

官方文档:
http://docs.jiguang.cn/client/android_sdk/
3 分钟快速集成 JPush Android SDK:
http://docs.jiguang.cn/guideline/android_3m/
Android SDK集成:
http://docs.jiguang.cn/guideline/android_guide/

三.具体实现

首先可以去极光的网站看看他们的介绍,完全不了解消息推送的可以先下载官方的demo运行看下效果,这里直接进入往自己项目接入消息推送的流程。

1.去极光后台注册应用,很简单,只需要应用名称,包名以及图标就可以,注意这里的包名一定要和项目的包名一致,如果包名错了后面的就都不用做了、

2.下载官方的demo,导入Android studio并安装到自己的手机跑通看下效果。看到效果以后就可以开始自己的接入了。在极光官网下载sdk

3.下载完的资源文档如上所示,example是官方提供的例子,可以参考它来使用。将libs下的jcore-android-1.1.5和jpush-android-3.0.7拷贝到自己项目的libs目录下,右键拷贝过来的jar包add as libraries…….

4.引入.so资源,在项目-src-main目录下新建文件夹并命名为jniLibs,将资源文件libs文件夹下剩余的文件全部拷贝过来

5.接下来就是修改androidmanifest.xml文件了,这个可以参考官方文档来改或者依据官方提供的demo(建议这么做,不容易出错),贴上我改的

<!-- Required -->
<permission
    android:name="你的包名.permission.JPUSH_MESSAGE"
    android:protectionLevel="signature" />


<!-- Required  一些系统要求的权限,如访问网络等-->
<uses-permission android:name="你的包名.permission.JPUSH_MESSAGE" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />



<application android:allowBackup="true"
    android:icon="@mipmap/logo"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme.NoActionBar"
    >
    <activity android:name=".WelcomeActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".MainActivity"></activity>



    <!-- Required SDK核心功能-->
    <activity
        android:name="cn.jpush.android.ui.PushActivity"
        android:configChanges="orientation|keyboardHidden"
        android:theme="@android:style/Theme.NoTitleBar"
        android:exported="false">
        <intent-filter>
            <action android:name="cn.jpush.android.ui.PushActivity" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="你的包名" />
        </intent-filter>
    </activity>

    <!-- Required SDK 核心功能-->
    <!-- 可配置android:process参数将PushService放在其他进程中 -->
    <service
        android:name="cn.jpush.android.service.PushService"
        android:process=":mult"
        android:exported="false">
        <intent-filter>
            <action android:name="cn.jpush.android.intent.REGISTER" />
            <action android:name="cn.jpush.android.intent.REPORT" />
            <action android:name="cn.jpush.android.intent.PushService" />
            <action android:name="cn.jpush.android.intent.PUSH_TIME" />
        </intent-filter>
    </service>



    <!-- Required SDK核心功能-->
    <receiver
        android:name="cn.jpush.android.service.PushReceiver"
        android:enabled="true"
        android:exported="false">
        <intent-filter android:priority="1000">
            <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY" />   <!--Required  显示通知栏 -->
            <category android:name="你的包名" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.USER_PRESENT" />
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        </intent-filter>
        <!-- Optional -->
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_ADDED" />
            <action android:name="android.intent.action.PACKAGE_REMOVED" />

            <data android:scheme="package" />
        </intent-filter>
    </receiver>



    <!-- Required SDK核心功能-->
    <receiver android:name="cn.jpush.android.service.AlarmReceiver" android:exported="false"/>




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

三.初始化

上面的步骤都完成以后,就可以在自己的主程序的oncreate方法里对推送进行初始化了,简单的两句代码,要实现自定义的话再自己去研究吧

//设置开启日志,发布时请关闭日志
JPushInterface.setDebugMode(true);
//初始化
JPushInterface.init(this);

到这里就基本没有问题啦,现在可以去极光后台发送消息测试了,不出错的话就已经成功接入消息推送了

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值