【Android推送】极光推送





一、基本使用说明文档:

1.首先进行接口初始化
 JPushInterface.init( getApplicationContext() );      // 初始化 JPush

{
停止和恢复:
停止:
接口定义: public   static   void   stopPush(Context context);
使用:JPushInterface. stopPush (getApplicationContext()); 

调用了本 API 后,JPush 推送服务完全被停止。具体表现为:

  • JPush Service 不在后台运行
  • 收不到推送消息
  • 不能通过 JPushInterface.init 恢复,需要调用resumePush恢复。
  • 极光推送所有的其他 API 调用都无效
恢复:
接口定义: public   static   void   resumePush(Context context);
使用:JPushInterface.resumePush(getApplicationContext());

恢复推送服务。

调用了此 API 后,极光推送完全恢复正常工作。

}


2.注册接收广播
     registerMessageReceiver();    // used for receive msg

      public   void   registerMessageReceiver() {
              mMessageReceiver   =   new   MessageReceiver();
           IntentFilter filter =   new   IntentFilter();
           filter.setPriority(IntentFilter.   SYSTEM_HIGH_PRIORITY );
           filter.addAction(   MESSAGE_RECEIVED_ACTION );
           registerReceiver(   mMessageReceiver , filter);
     }

      public   class   MessageReceiver   extends   BroadcastReceiver {
              @Override
              public   void   onReceive(Context context, Intent intent) {
                   if   ( MESSAGE_RECEIVED_ACTION .equals(intent.getAction())) {
              String messge = intent.getStringExtra( KEY_MESSAGE   );
              String extras = intent.getStringExtra(   KEY_EXTRAS );
              StringBuilder showMsg =   new   StringBuilder();
              showMsg.append(   KEY_MESSAGE   +   " : "   + messge +   "\n" );
                if   (!ExampleUtil. isEmpty(extras)) {
                  showMsg.append(   KEY_EXTRAS   +   " : "   + extras +   "\n" );
              }
              setCostomMsg(showMsg.toString());
                }
           }
     }

3. 添加Sdk相关权限和功能
     <!-- Required SDK核心功能-->
          < activity
              android:name =   "cn.jpush.android.ui.PushActivity"
              android:theme = "@android:style/Theme.Translucent.NoTitleBar"
              android:configChanges =   "orientation|keyboardHidden"   >
              < intent-filter   >
                  < action   android:name =   "cn.jpush.android.ui.PushActivity"   />
                  < category   android:name =   "android.intent.category.DEFAULT"   />
                  < category   android:name   = "com.jpush.example.app"   />
              </ intent-filter   >
          </ activity   >
          <!-- Required  SDK核心功能-->
          < service
              android:name =   "cn.jpush.android.service.DownloadService"
              android:enabled =   "true"
              android:exported =   "false"   >
          </ service   >
   
       
          <!-- Required SDK 核心功能-->
          < service
              android:name =   "cn.jpush.android.service.PushService"
              android:enabled =   "true"
              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"   >
               < intent-filter   android:priority   = "1000" >
                  < action   android:name =   "cn.jpush.android.intent.NOTIFICATION_RECEIVED_PROXY"   />        <!--Required  显示通知栏 -->
                  < category   android:name   = "com.jpush.example.app"   />
              </ 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"   />
     

4.添加网络等相关权限
     <!-- Required  一些系统要求的权限,如访问网络等-->
      < uses-permission   android:name =   "com.jpush.example.app.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.SYSTEM_ALERT_WINDOW"   />   


二、添加自定义消息

 极光推送包含有通知与自定义消息两种类型的推送。

主要区别:
 通知:主要用于提示用户的目的。应用加上通知功能,有利于提高应用的活跃度。
 自定义消息 :自定义消息不是通知,所以不会被SDK展示到通知栏上。其内容完全由开发者自己定义。自定义消息用于应用的内部业务逻辑,完全与通知栏展示无关。自定义消息用于应用的内部业务逻辑。一条自定义消息推送过来,有可能没有任何界面显示。
相关资料可以参考:

主要使用:
1.自定义广播类:

/**
 * 自定义接收器
 *
 * 如果不定义这个 Receiver,则:
 * 1) 默认用户会打开主界面
 * 2) 接收不到自定义消息
 */
public   class   MyReceiver   extends   BroadcastReceiver {


}
2.注册广播:
   <!-- 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.UNREGISTRATION"   />    
                  < 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.ACTION_RICHPUSH_CALLBACK"   />   <!--Optional 用户接受Rich Push Javascript 回调函数的intent-->
                  < action   android:name =   "cn.jpush.android.intent.CONNECTION"   />   <!-- 接收网络变化 连接/断开 since 1.6.3 -->
                  < category   android:name   = "com.jpush.example.app"   />
              </ intent-filter   >
          </ receiver   >


三、相关设置
1. 设置Tag,Alias
 Alias(别名 ):为安装了应用程序的用户,取个别名来标识。以后给该用户 Push 消息时,就可以用此别名来指定。每个用户只能指定一个别名。
 Tag (标签 ):为安装了应用程序的用户,打上标签。其目的主要是方便开发者根据标签,来批量下发 Push 消息。可为每个用户打多个标签。
主要设置接口public   static   void   setAliasAndTags(Context context, String alias, Set<String> tags, TagAliasCallback callback)

2.定义通知栏样式:
主要接口:
public static void setDefaultPushNotificationBuilder(BasicPushNotificationBuilder builder)

public static void setPushNotificationBuilder(Integer notificationBuilderId, BasicPushNotificationBuilder builder)

3.设置推送时间


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值