android新闻推送(Jpush)

一.本身动用极光推送Jpush进行消息推送,达成一定时间给使用发送消息

二.开发步骤

1.下载Jpush的SDK

图片 1

 

2.注册用户和行使,获取APPKey和 Master Secret

图片 2

 3-1.将SDK的libs文件拷贝到工程libs下,并参加 build path

图片 3

3-2.复制 res/ 中drawable-hdpi, layout,
values文件夹中的财富文件到您的工程中 res/ 对应同名的目录

 

图片 4

 

4.替换工程的清单文件为SDK的清单文件(或许配置你的AndroidManifest.xml文件步骤如下)

  • 复制备注为 “Required” 的一些
  • 将标注为“您使用的包名”的有的,替换为当前应用程序的包名
  • 将标注为“您使用的Appkey”的一些,替换为在Portal上注册该行使的的Key,例如:9fed5bcb7b9b87413678c407
  • 登记广播接收者,并在清单文件配置
  • package com.example.push;

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    
    public class MyReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            System.out.println("我接收到广播的消息了");
    
        }
    
    }
    

     

  • 修改前清单文件

  • 1

    2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    3     package="您应用的包名"
    4     android:versionCode="303"
    5     android:versionName="3.0.3"
    6     >
    7     <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="23" />
    8 
    9     <!-- Required -->
    

    10 12 android:protectionLevel=”signature” />
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    41
    42
    43
    44
    48
    49
    50
    51
    52
    53

    54

    55
    56
    57
    58
    62
    63
    64
    65

    66

    67
    68
    69
    72
    73
    74
    75

    76
    77
    78
    79

    80
    81
    82
    83
    84
    85

    86

    87
    88
    89
    94
    95
    96
    97
    98

    99

    100
    101
    106
    107
    108
    109

    110

    111
    112
    113
    117

    118
    119
    120
    121
    122
    123
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138

    139

    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150

    151

    修改后清单文件:

  • 1

    2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    3     package="com.example.push"
    4     android:versionCode="1"
    5     android:versionName="1.0" >
    6 
    7     <uses-sdk
    8         android:minSdkVersion="14"
    9         android:targetSdkVersion="18" />
    

    10
    11
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    42
    45
    46
    47
    48
    49

    50

    51
    52
    53
    57

    58
    59
    60
    65
    66
    67
    68
    69

    70

    71
    72
    73
    74
    78
    79
    80
    81
    82
    83

    84

    85
    86
    87
    91
    92
    93
    94

    95
    96
    97
    98

    99
    100
    101
    102
    103
    104
    105

    106

    107
    108
    109
    110
    111
    112
    116
    117
    118
    119
    120
    121
    122
    123

    124

    125
    126
    127
    128
    129
    130

    131
    132

    5.推送设置

  • 图片 5

  • 三.API使用:JPush SDK 提供的 API 接口,都首要集聚在
    cn.jpush.android.api.JPushInterface 类里
  • 1自定义Application类:MyApplication,并在onCreate(执行一回)方法中调用

    public static void init(Context context)初始化
    
  • public static void setDebugMode(boolean debugEnalbed)配置调节和测试方式

  • 代码如下:

  • package com.example.push;

    import android.app.Application;
    import cn.jpush.android.api.JPushInterface;
    
    public class MyApplication extends Application {
    
        @Override
        public void onCreate() {
            // TODO Auto-generated method stub
            super.onCreate();
            JPushInterface.setDebugMode(true);
            JPushInterface.init(this);
        }
    
    }
    

    图片 6

  •  

    2.测试确认

  • 肯定所需的权力都已经拉长。若是必须的权柄未添加,日志会提示错误。

  • 确认 AppKey(在Portal上扭转的)已经不易的写入 Androidmanifest.xml 。
  • 确认在程序运转时候调用了init(context) 接口
  • 肯定测试手提式有线电话机(只怕模拟器)已成功连入互联网 + 客户端调用 init
    后赶忙,尽管一切不奇怪,应有登录成功的日志音讯
    • 起步应用程序,在 Portal
      上向应用程序发送自定义新闻依然公告栏提醒。详情请参考管理Portal

      • 在几秒内,客户端应可收到下发的布告或然正定义音讯,借使 SDK
        工作健康,则日志音讯会如下:

    [JPushInterface] action:init
    
    .......
    
    [PushService] Login succeed!
    
  • 出殡消息

  • 图片 7

     

  • 功效查看

  • 图片 8

    能够推送时顺手新闻:

  • 图片 9

    收纳播放如下:

  • package com.example.push;

    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import cn.jiguang.api.JCoreInterface;
    import cn.jpush.android.api.JPushInterface;
    
    public class MyReceiver extends BroadcastReceiver {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
    
            Log.e("MyReceiver", "我接收到广播的消息了");
            //获取接收到推送的消息数据
            Bundle bundle = intent.getExtras();
            String JSON = bundle.getString(JPushInterface.EXTRA_EXTRA);//得到的是服务器返回的json串,需要解析才能得到消息内容
            /*
             *  {"n_builder_id":0,"ad_id":"1218881444","n_only":1,"m_content":{"n_content":"锄禾日当午,android真他妈难。","n_style":0,"n_extras":{},"ad_t":0,"n_priority":1,"n_alert_type":7,"n_title":"","n_category":"","n_flag":1},"show_type":4} - JResponse{code=0}
    
             */
    
            Log.e("MyReceiver",JSON);
        }
    
    }
    

     

  • 清单文件里布置只在点击时发送广播,别的景况一切诠释

  • 图片 10

     

  • 点击公告消息时运维效果:

  • 图片 11

     倘诺想行使推出后不推送音信,则足以在Activity销毁时停下服务

  • 图片 12

     

相关文章