极光推送

自己对极光推送的理解:

极光官网文档http://docs.jiguang.cn/jpush/client/Android/android_guide/#_5

 

极光android(eclipse)集成。

第一步:

解压缩 jpush-android-release-2.x.y.zip 集成压缩包。

复制 libs/jpush-sdk-2.x.y.jar 到工程libs/ 目录下。

复制 libs/(cpu-type)/libjpush2xy.so 到你的工程中存放对应cpu类型的目录下。(项目中有的导入,没有不能导入)

复制 res/ 中drawable-hdpi,layout, values文件夹中的资源文件到你的工程中 res/ 对应的目录下。

完成到这里,准备工作完成一步。

第二步:配置AndroidManifest.xml,

 

<?xmlversion="1.0" encoding="utf-8"?>

<manifestxmlns:android="http://schemas.android.com/apk/res/android"

    package="您应用的包名"

    android:versionCode="216"

    android:versionName="2.1.6"

    >

    <uses-sdkandroid:minSdkVersion="9" android:targetSdkVersion="23"/>

 

        <!-- Required -->

        <permission

            android:name="您应用的包名.permission.JPUSH_MESSAGE" 

           android:protectionLevel="signature" />

 

    <!-- Required -->

    <uses-permission android:name="您应用的包名.permission.JPUSH_MESSAGE"/>

    <uses-permissionandroid:name="android.permission.RECEIVE_USER_PRESENT" />

    <uses-permission android:name="android.permission.INTERNET"/>

    <uses-permissionandroid:name="android.permission.WAKE_LOCK" />

    <uses-permissionandroid:name="android.permission.READ_PHONE_STATE" />

    <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE" />

    <uses-permissionandroid:name="android.permission.VIBRATE" />

    <uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <uses-permissionandroid:name="android.permission.WRITE_SETTINGS" />

    <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE" />

 

    <!-- Optional. Required for locationfeature -->

    <uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION" />

    <uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE" />

    <uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-permissionandroid:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

    <uses-permissionandroid:name="android.permission.CHANGE_NETWORK_STATE" />

    <uses-permissionandroid:name="android.permission.GET_TASKS" />

 

    <application

        android:icon="@drawable/ic_launcher"

       android:label="@string/app_name"

        android:name="YourApplication">

 

        <!-- Required SDK 核心功能-->

        <!-- option since 2.0.5 可配置PushService,DaemonService,PushReceiver,AlarmReceiver的android:process参数 将JPush相关组件设置为一个独立进程 -->

        <!-- 如:android:process=":remote"-->

        <service

           android:name="cn.jpush.android.service.PushService"

            android:enabled="true"

            android:exported="false">

            <intent-filter>

                <actionandroid:name="cn.jpush.android.intent.REGISTER" />

                <actionandroid:name="cn.jpush.android.intent.REPORT" />

                <actionandroid:name="cn.jpush.android.intent.PushService" />

                <action android:name="cn.jpush.android.intent.PUSH_TIME"/>

            </intent-filter>

        </service>

 

        <!-- since 1.8.0 option 可选项。用于同一设备中不同应用的JPush服务相互拉起的功能。 -->

        <!-- 若不启用该功能可删除该组件,将不拉起其他应用也不能被其他应用拉起 -->

         <service

             android:name="cn.jpush.android.service.DaemonService"

             android:enabled="true"

            android:exported="true">

             <intent-filter >

                 <actionandroid:name="cn.jpush.android.intent.DaemonService" />

                 <category android:name="您应用的包名"/>

             </intent-filter>

         </service>

 

        <!-- Required -->

        <receiver

           android:name="cn.jpush.android.service.PushReceiver"

            android:enabled="true">

          <intent-filter android:priority="1000">

                <actionandroid:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY"/>

                <categoryandroid:name="您应用的包名"/>

            </intent-filter>

            <intent-filter>

                <action android:name="android.intent.action.USER_PRESENT"/>

                <actionandroid:name="android.net.conn.CONNECTIVITY_CHANGE" />

            </intent-filter>

            <!-- Optional -->

            <intent-filter>

                <actionandroid:name="android.intent.action.PACKAGE_ADDED" />

                <actionandroid:name="android.intent.action.PACKAGE_REMOVED" />

                <dataandroid:scheme="package" />

            </intent-filter>

        </receiver>

     <!-- Required SDK核心功能-->

        <activity

           android:name="cn.jpush.android.ui.PushActivity"

           android:configChanges="orientation|keyboardHidden"

            android:exported="false">

            <intent-filter>

                <action android:name="cn.jpush.android.ui.PushActivity"/>

                <categoryandroid:name="android.intent.category.DEFAULT" />

                <categoryandroid:name="您应用的包名" />

            </intent-filter>

        </activity>

        <!-- Required SDK核心功能-->

        <service

           android:name="cn.jpush.android.service.DownloadService"

            android:enabled="true"

            android:exported="false">

        </service>

        <!-- Required SDK核心功能-->

        <receiverandroid:name="cn.jpush.android.service.AlarmReceiver" />

 

        <!-- User defined. 用户自定义的广播接收器-->

         <receiver

             android:name="您自己定义的Receiver"

            android:enabled="true">

             <intent-filter>

                 <!--Required 用户注册SDK的intent-->

                 <actionandroid:name="cn.jpush.android.intent.REGISTRATION" />

                 <!--Required 用户接收SDK消息的intent-->

                 <actionandroid:name="cn.jpush.android.intent.MESSAGE_RECEIVED" />

                 <!--Required 用户接收SDK通知栏信息的intent-->

                 <actionandroid:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" />

                 <!--Required 用户打开自定义通知栏的intent-->

                 <actionandroid:name="cn.jpush.android.intent.NOTIFICATION_OPENED" />

                 <!-- 接收网络变化 连接/断开 since 1.6.3 -->

                 <actionandroid:name="cn.jpush.android.intent.CONNECTION" />

                 <categoryandroid:name="您应用的包名" />

             </intent-filter>

         </receiver>

 

        <!-- Required. For publish channelfeature -->

        <!-- JPUSH_CHANNEL 是为了方便开发者统计APK分发渠道。-->

        <!-- 例如:-->

        <!-- 发到 Google Play 的APK可以设置为google-play; -->

        <!-- 发到其他市场的 APK 可以设置为xxx-market。 -->

        <!-- 目前这个渠道统计功能的报表还未开放。-->

        <meta-dataandroid:name="JPUSH_CHANNEL"android:value="developer-default"/>

        <!-- Required. AppKey copied fromPortal -->

        <meta-dataandroid:name="JPUSH_APPKEY" android:value="YourAppKey"/>

    </application>

</manifest>

到此准备工作完成,这样就可以接收广播发来的消息了。如果不成功,请检查网络是否连接。

 

 

在MainActivity中,

在onResume()中添加JPushInterface.onResume(this);

在onPause()中添加 JPushInterface.onPause(this);

 

可以在MainActivity中,可以调用的接口

手动停止服务

JPushInterface.stopPush(Contextcontext);

手动恢复服务

JPushInterface.resumePush(Contextcontext);

设置别名

JPushInterface.setAliasAndTags(getApplicationContext(),name, null);

设置推送时间

JPushInterface.setPushTime(Contextcontext, Set<Integer> weekDays, int startHour, int endHour);

设置静默时间

JPushInterface.setSilenceTime(getApplicationContext(),22, 30, 8, 30);

设置通知的条数

JPushInterface.setLatestNotificationNumber(Contextcontext, int maxNum);

设置通知栏样式

JPushInterface.setPushNotificationBuilder(1,builder);

 

 

 

在你自定义的Receiver中,用Bundle来传送数据,例如:

 

Bundle bundle = intent.getExtras();

If(JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getExtras())){

//这里填写你需要的内容

}





用户点击了通知栏跳转到指定界面

JPushInterface.ACTION_NOTIFICATION_OPENED

接收推送的自定义消息

JPushInterface.ACTION_MESSAGE_RECEIVED

接收推送下来的通知

JPushInterface.ACTION_NOTIFICATION_RECEIVED

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值