【Android推送】极光推送
来源:互联网 发布:java soap发送报文 编辑:程序博客网 时间:2024/04/29 21:17
官方相关文档:http://docs.jpush.cn/pages/viewpage.action?pageId=3309821
一、基本使用说明文档:
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展示到通知栏上。其内容完全由开发者自己定义。自定义消息用于应用的内部业务逻辑,完全与通知栏展示无关。自定义消息用于应用的内部业务逻辑。一条自定义消息推送过来,有可能没有任何界面显示。
相关资料可以参考:
http://docs.jpush.cn/pages/diffpagesbyversion.action?pageId=3309701&originalVersion=4&revisedVersion=11
主要使用:
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 消息。可为每个用户打多个标签。
相关API和说明:http://docs.jpush.cn/pages/viewpage.action?pageId=557241
主要设置接口:
public
static
void
setAliasAndTags(Context context, String alias, Set<String> tags, TagAliasCallback callback)
2.定义通知栏样式:
主要接口:
相关API和说明:http://docs.jpush.cn/pages/viewpage.action?pageId=557243
public static void setDefaultPushNotificationBuilder(BasicPushNotificationBuilder builder)
public
static
void
setPushNotificationBuilder(Integer notificationBuilderId, BasicPushNotificationBuilder builder)
3.设置推送时间
相关API和说明:http://docs.jpush.cn/pages/viewpage.action?pageId=1343490
0 0
- 【Android推送】极光推送
- android推送,极光推送
- 6.10 Android 推送 极光推送
- Android消息推送,极光推送
- android 极光推送接入
- Android Jpush极光推送
- android极光推送
- Android极光推送
- Android 极光推送集成
- Android极光推送入门
- android极光推送集成
- Android集成极光推送
- android极光推送
- android极光推送
- android 框架 极光推送
- android最新版 极光推送
- android极光推送
- android集成极光推送
- android面试题中的一些实例对比
- 访问solr/browse 出错的解决办法
- 如何使用新浪微博sdk
- iOS NSInteger/NSUInteger与int/unsigned int、long/unsigned long之间的区别
- fis简单压缩、合并使用方法,fis基本使用
- 【Android推送】极光推送
- Django新手需要注意的10个要点
- 2015最新AppStore上架流程
- fiddler翻译
- 解析XML文件后生成JSON格式,供WEB前端调用
- 控制git push的用户的合法性
- go里面select-case和time.Ticker的使用注意事项
- ThinkPHP 模型
- rpc 的使用