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

     

相关文章