智游推送zypush试用

2024-02-22 19:50
文章标签 推送 试用 智游 zypush

本文主要是介绍智游推送zypush试用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

最近要做推送的功能,于是去了解了下社区推荐的智游推送
开发指南非常详细,按照这个配置,就可以出来了。

1.申请appkey

到http://www.zypush.com申请appkey

2.导入文件

将zhiyou_push.**.jar,liblptcpjin.so库以及push_notification.xml,push_download.xml文件导入到工程内部

3.配置AndroidManifest.xml文件

<注意:在配置过程中有些地方需要用到包名以及appkey>

<!-- push service(必要) -->
<service android:name=”com.joboevan.push.service.PushService”>
</service><!--应用包名.PushReceiver 定义推送消息接收器,PushReceiver在SDK中有这个类--><!-- <receiver android:name="YOUR_PACKAGENAME.PushReceiver" > -->
<!--com.zypush.activity 这是我自己的包名--><receiver android:name=”com.zypush.activity.PushRecevier”><intent-filter><!-- <action android:name=”com.zypush.android.intent.message.申请的appkey”/> --><!--用户接收消息的action--><action android:name=”com.zypush.android.intent.message.f262516bedf4c0f567b5659840920f94”/><!--用户打开通知栏的action--><action android:name=”com.zypush.android.intent.NOTIFICATION_OPENED.f262516bedf4c0f567b5659840920f94”/><!-- 需要上传经纬度的action --><action android:name=”com.zypush.android.intent.LBS_PUSH.f262516bedf4c0f567b5659840920f94”/></intent-filter>
</receiver><!--- 心跳广播接收器注册(必要) -->
<receiverandroid:name="com.joboevan.push.receiver.CheckConnectRecevier"android:enabled="true" /><!-- 网络改变广播监听 (必要)--><receiver android:name="com.joboevan.push.receiver.NetworkReceiver" ><intent-filter ><action android:name="android.net.conn.CONNECTIVITY_CHANGE" /></intent-filter></receiver><!--  android:authorities="packagename"此处填写包名 (必要)--><providerandroid:authorities="com.zypush.activity"android:name="com.joboevan.push.providers.downloads.DownloadProvider" /><!-- 富媒体下载服务 (必要)--><service android:name="com.joboevan.push.providers.downloads.DownloadService" /><!-- 富媒体下载接收器 (必要)--><receiverandroid:exported="false"android:name="com.joboevan.push.providers.downloads.DownloadReceiver" ><intent-filter ><action android:name="android.net.conn.CONNECTIVITY_CHANGE" /></intent-filter></receiver><!-- 配置的第三方参数属性   测试账号:zypush  密码:123456 --><!-- http://www.zypush.com --><meta-dataandroid:name="ZYPUSH_APPKEY"android:value="f262516bedf4c0f567b5659840920f94" />



推送服务运行所需要的权限

<!--自定义权限--><permission android:name="com.zypush.permission.ACCESS_DOWNLOAD_MANAGER" />
<!-- 网络权限 --><uses-permission android:name="android.permission.INTERNET" /><!-- 网络状态权限 --><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><!-- 往sdcard中写入数据的权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- 获取手机设备号权限 --><uses-permission android:name="android.permission.READ_PHONE_STATE" /><!-- 手机震动权限 --><uses-permission android:name="android.permission.VIBRATE" /><!-- 引用富媒体自定义权限 --><uses-permission android:name="com.zypush.permission.ACCESS_DOWNLOAD_MANAGER" /><!-- 唤醒权限 --><uses-permission android:name="android.permission.WAKE_LOCK" /><!-- 获取当前任务权限 --><uses-permission android:name="android.permission.GET_TASKS" /><!-- 悬浮窗体权限--><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><!-- 保留权限,后续添加功能需要用到 --><!-- network网络开关权限(可选权限) --><uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /><!-- 获取基站需要的权限 (可选权限)--><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>



4.智游推送API接口说明

4.1启动推送服务
函数原型

1
2
代码块 PushManager.getInstance().connect(Context context,boolean isReconnect)

参数
context: Context对象
isReconnect: 设置是否自动重连,true:表示断线以后自动重连,false标示断线以后不会自动重连

返回值
true:开启推送的条件都满足
false:条件不满足开启推送

示例

1
2
代码块 boolean result = PushManager.getInstance().connect(getApplicationContext(),true);

4.2设置别名

需要注意的是:这个接口是覆盖逻辑,而不是增量逻辑。即新的调用会覆盖之前的设置。

一个用户只可以设置一个别名,相当于一个人的名字,为了确保其唯一性,一般是用用户名设置别名,推送可以根据别名进行推送到个人客户端。设置别名超时时间为15秒,别名的最大长度不得超过40个字节,可以在PushReceiver中接收设置别名返回给客户端的返回值

1
2
代码块 PushManager.getInstance().bindAlias(Context context, String alias)

参数
context: Context对象

alias:设置的别名

返回值

示例

1
2
代码块 PushManager.getInstance().bindAlias(this, “别名”);

4.3设置标签

需要注意的是:这个接口是覆盖逻辑,而不是增量逻辑。即新的调用会覆盖之前的设置。

标签的功能可以将一个整体划分成不同的群体,比如说将所有的用户划分成“男”用户和“女”用户,那么就可以给用户设置标签“男”或“女”。一个用户可以设置多个标签,多个标签的关系是或的关系。设置标签超时时间为15秒,单个标签的最大长度不得超过40个字节,并且不能为空,一个客户端最多可以设置100个标签。

函数原型

1
2
代码块 PushManager.getInstance().setTags(Context context , List<String> tags)

参数
context: Context对象

tags: 设置标签的List数组

返回值

示例

1
2
代码块 PushManager.getInstance().setTags(this,tags);

4.4设置通知栏图标

设置顶层通知栏图标

函数原型

1
2
代码块 PushManager.getInstance().setNotificationIcon(Context context ,int value);

参数

context: Context对象

value: 通知栏图标的资源id

返回值

示例

1
2
代码块 PushManager.getInstance().setNotificationIcon(this , R.drawable.icon);

4.5设置是否开启智能提醒

是否开启智能提醒。

函数原型

1
2
代码块 PushManager.getInstance(). isOpenRemind(Context context , boolean state , String content , int days , int startTime , int endTime) ;

参数
context: Context对象

state : 设置是否开启智能提醒,true:表示开启智能提醒,false表示暂停智能提醒

content:设置提醒内容

days:相隔几天之后没有打开应用,进行提醒

startTime:在startTime之后进行提醒0-23

endTime:在endTime之前进行提醒0-23

返回值

true:开启智能提醒成功
false:开启智能提醒失败

示例

1
2
代码块 boolean result = PushManager.getInstance().isOpenRemind(this, true, "这是一个智能提醒", 3, 0, 23) ;

想要看更多的API说明,可以到www.zypush.com

5.接收消息PushReceiver

package com.zypush.activity;import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;import com.joboevan.push.bean.SendBroastBean;
import com.joboevan.push.tool.Consts;
import com.joboevan.push.tool.LBS;
import com.joboevan.push.tool.Tool;/*** 推送消息接收器* * **/
public class PushReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubString action = intent.getAction();if (Consts.getACTION_RECEIVER_KEY(context).equals(action)) {Bundle bundle = intent.getExtras();String key = bundle.getString("key");if (Consts.MESSAGE_KEY_CONNECT.equals(key)) {// 连接结果int value = bundle.getInt("value");switch (value) {case Consts.RESULT_Y:Log.d("Log", "连接成功");break;case Consts.RESULT_N:Log.d("Log", "连接失败");break;}} else if (Consts.MESSAGE_KEY_LOGIN.equals(key)) {// 登陆结果int value = bundle.getInt("value");switch (value) {case Consts.RESULT_Y:Log.d("Log", "登陆成功");break;case Consts.RESULT_N:Log.d("Log", "登陆失败");break;}} else if (Consts.MESSAGE_KEY_SETALIAS.equals(key)) {int value = bundle.getInt("value");switch (value) {case Consts.RESULT_Y:Log.d("Log", "别名设置成功");break;case Consts.RESULT_N:Log.d("Log", "别名设置失败");break;case Consts.RESULT_I:Log.d("Log", "正在设置别名");break;default:break;}} else if (Consts.MESSAGE_KEY_CLEANALIAS.equals(key)) {int value = bundle.getInt("value");switch (value) {case Consts.RESULT_Y:Log.d("Log", "清除别名成功");break;case Consts.RESULT_N:Log.d("Log", "清除别名失败");break;case Consts.RESULT_I:Log.d("Log", "正在清除别名");break;default:break;}} else if (Consts.MESSAGE_KEY_SETTAGS.equals(key)) {int value = bundle.getInt("value");switch (value) {case Consts.RESULT_Y:Log.d("Log", "标签设置成功");break;case Consts.RESULT_N:Log.d("Log", "标签设置失败");break;case Consts.RESULT_I:Log.d("Log", "正在设置标签");break;default:break;}} else if (Consts.MESSAGE_KEY_CLEANTAGS.equals(key)) {int value = bundle.getInt("value");switch (value) {case Consts.RESULT_Y:Log.d("Log", "标签清除成功");break;case Consts.RESULT_N:Log.d("Log", "标签清除失败");break;case Consts.RESULT_I:Log.d("Log", "正在清除标签");break;default:break;}} else if (Consts.MESSAGE_KEY_CUSTOM.equals(key)) {// 接收自定义推送信息String value = bundle.getString("value");String flag = bundle.getString(Consts.MESSAGE_BACK_FLAG);Log.w("Log", "推送自定义消息: " + value);Log.w("Log", "推送自定义消息id: " + flag);//这个方法是推送内部封装生成通知的方法CustomNotification notification = new CustomNotification();notification.createNotification(context);} else if (Consts.MESSAGE_KEY_NOTIFICATION.equals(key)) { // 如需在工程中展示通知标题和内容,请设置是否展示通知内容String title = bundle.getString(Consts.NOTIFICATION_TITLE);String content = bundle.getString(Consts.NOTIFICATION_CONTENT);String ext = bundle.getString(Consts.NOTIFICATION_EXT);String flag = bundle.getString(Consts.MESSAGE_BACK_FLAG);Log.d("Log", "通知标题:" + title);Log.d("Log", "通知内容:" + content);Log.d("Log", "通知附加字段:" + ext);Log.d("Log", "通知消息id:" + flag);} else if (Consts.MESSAGE_KEY_PUSHSTATECHANGED.equals(key)) { // 客户端与服务端的状态int value = bundle.getInt("value");switch (value) {case Consts.PUSH_CONNECTSTATE_CONNECTING: // 通道连接Log.d("Log", "推送服务已经连接");break;case Consts.PUSH_CONNECTSTATE_DISCONNECT: // 通道断开Log.e("Log", "推送服务已经断开");break;}} else if (Consts.ACTION_RECEIVER_VERSION.equals(key)) {int value = bundle.getInt("value");switch (value) {case Consts.VERSION_LATEST:Log.d("Log","推送版本是最新版本:可用");break;case Consts.VERSION_OLD_PERMIT:Log.d("Log","推送版本是老版本:可用");break;case Consts.VERSION_OLD_REFUSE:Log.e("Log","推送版本是老版本:不可用");break;default:break;}} else if (Consts.CLIENT_DEVICE_ID.equals(key)) {String device_id = bundle.getString("value");Log.d("Log", "设备唯一标识:" + device_id);}} else if (Consts.getActionNotificationOpened(context).equals(action)) {Log.d("Log", "用户点击了通知");Bundle bundle = intent.getExtras() ;//通知标题String title = bundle.getString(Consts.NOTIFICATION_TITLE);//通知内容String content = bundle.getString(Consts.NOTIFICATION_CONTENT);//通知附加字段String ext = bundle.getString(Consts.NOTIFICATION_EXT);//通知消息flagString flag = bundle.getString(Consts.MESSAGE_BACK_FLAG);Intent i = new Intent(context, TestActivity.class);i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);} else if (Consts.getActionLbsPush(context).equals(action)) { // 接收到广播,需要上传经纬度Log.d("Log", "需要上传经纬度信息");// 请调用上传经纬度的接口,此处是写的固定的百度经纬度// 参数分别为context对象,经度,纬度,类型(需要通过枚举类获取,分为GPS,百度,google三种经纬度类型)String method = LBS.BAIDU.method(); // 获取经纬度类型PushMethodImpl.getInstance().UploadGpsMessage(context,"0", "0", method);}}}



转载于:https://my.oschina.net/lhjtianji/blog/201411

这篇关于智游推送zypush试用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/736311

相关文章

Android 友盟消息推送集成遇到的问题

友盟消息推送遇到的问题 集成友盟消息推送,步骤根据提供的技术文档接入便可。可是当你集成到项目中去的时候,可能并不是一帆风顺就搞定,因为你项目里面是可能集成了其他的sdk(比如支付宝,微信,七鱼等等三方的sdk)。那么这个时候,再加上友盟的消息推送sdk集成可能就会出现问题。 问题清单 友盟消息推送sdk和支付宝sdk冲突问题 后台配置了消息推送,也显示发送成功,但是手机没有收到消息通知

JAVA学习-练习试用Java实现“删除有序数组中的重复项”

问题: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 说明: 为什么返回数值是整数,但输出的答案是数组呢? 请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。 你可以想象内部操作如下

Redis应用之Feed流关注推送

我的博客大纲 我的后端学习大纲 -------------------------------------------------------------------------------------------------------------------------------------------------# 3.好友关注: 3.1.关注和取关: a.接口说明:

GIT-macOS配置推送代码到GitHub

文章目录 前言1. **设置 HTTP/HTTPS**临时设置(仅对当前会话有效)永久设置(写入配置文件) 2. **设置 SOCKS **3. **取消设置**4. **验证配置**5. **测试推送** 总结 前言 macOS配置推送代码到GitHub 1. 设置 HTTP/HTTPS 临时设置(仅对当前会话有效) git config --global ht

JAVA学习-练习试用Java实现“N皇后 II”

问题: n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给定一个整数 n ,返回 n 皇后问题不同的解决方案的数量。 示例 1: 输入:n = 4 输出:2 解释:如上图所示,4 皇后问题存在两个不同的解法。 示例 2: 输入:n = 1 输出:1 提示: 1 <= n <= 9 皇后彼此不能相互攻击,也就是说:任何两个皇后都不能处于同

Linux平台下利用JNI+双向RMI实现远程推送

一、 前言  作为一种优秀的编程语言,Java在许多方面具有突出的优越性。其中,RMI技术充分展现了Java卓越的分布式计算能力,而JNI技术则体现了Java结合异种编程语言的强大能力。人们常说,RMI是“从Java到Java”,这种说法忽视了这样一个事实:Java可利用JNI技术很容易地与原有系统连接。JNI+RMI的技术解决方案极大地延伸了Java的分布式功能。  本文的写作是基于这样一种实

一步步教你接入个推 推送

一: manifast中的配置 权限: <!-- 个推SDK权限配置开始 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permissi

【gitlab 上传代码】gitlab 推送本地代码到远程仓库

1、安装git。 2、新建项目,只勾选私有,或者公开,注意不要勾选readme 3、添加和配置SSH公钥 cd ~/.ssh如果提示 “ No such file or directory”,手动的创建一个 .ssh文件夹即可mkdir ~/.sshgit config --global user.name "赖德发"git config --global user.email "lai

试用GLFW并创建OpenGL和DX的环境

介绍GLFW GLFW官网:https://www.glfw.org/ GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contex