Android客户端与PHP服务端通信(五)---移植使用极光推送

概述

上一节备研究了示例工程的框架,本节准备自己创建工程,并将极光推送移植到其上。

创建工程

首先创建一个工程,工程名和应用名为lovelife,包名com.lygk.lovelife

一直“Next”,直到Finish,此时建立工程完毕,如下图

集成JPush SDK

1. 导入SDK开发包

关于集成SDK的方法,JPush 官方文档已经讲得很详细,可以去看

http://docs.jpush.io/guideline/android_guide/ ,这里我简单的描述一下步骤。

首先将上图所示的示例工程下的armeabi文件夹、armeabi-v7a文件夹、jpush-sdk-release1.7.3.jar拷贝复制到自己创建的工程libs\文件夹下

然后在工程里F5或者工程名右击选择“Refresh”刷新,可以看到此时工程里已经包含了咱们复制的SDK。

2. 配置 AndroidManifest.xml

首先,添加权限声明

注意红线框出的内容对应你创建的应用的Package包名,我的是com.lygk.lovelife。

然后配置application,先要添加应用名,即下图红线框出的部分,其中MainApplication是我即将要创建的Application名。

然后添加JPush SDK中的PushActivity声明,注意红线框出的部分对应你所创建的包名。

接着添加Service服务声明

接着添加Receiver服务声明,注意红线圈出的部分对应你创建的包名。

接着声明APPKEY

你可能会发现还有一些配置文件的内容没有加,没事儿,移植从最简单入手,先移植这些就够了。

创建MainApplication类

在src\Your package\下新建一个类MainApplication,它继承Application

MainApplication.java内容如下:

package com.lygk.lovelife;

import android.app.Application;
import android.util.Log;
import cn.jpush.android.api.JPushInterface;

public class MainApplication extends Application {
    private static final String TAG = "LYGK";

    @Override
    public void onCreate() {
    	Log.d(TAG, "Application启动");
        super.onCreate();

        JPushInterface.setDebugMode(true); 	// 设置开启日志,发布时请关闭日志
        JPushInterface.init(this);     		// 初始化 JPush
    }
}

添加完如上代码后,就可以直接真机调试了,如下Logcat可以看出定义的Application已经运行

此时你如果直接用JPush上的控制台发送通知消息,此时Application已经可以“叮”收到推送的通知了,但是此时手机上会出现错误提示

意思是没有在MainActivity中添加onResume()函数。下面咱们去修改MainActivity。

修改MainActivity

新创建工程时生成的MainActivity继承自Activity,如下图

现在,要修改其父类,使其继承JPush库中的InstrumentedActivity,如下图

同时,重构父类的onResume(),onPause(),onDestroy()函数。

此时,运行修改后的程序,如下图

通过控制台,发送推送通知

此时手机上可以收到推送通知,这样说明咱们移植的最最小系统算是成功了。

关于这部分的代码,如有需要,请点此下载

结尾

上面的例子中,我精简了官方例程中代码,移植了最基本的接收功能,这算是一个关于JPush的Hello World吧,剩下的就靠读者自己去看官方文档摸索了,比如点击通知栏,却回到了主界面?怎么显示自定义消息等等。

五一短暂的三天即将结束,这三天里我也get了新知识,感觉蛮充实的,暂时不准备写了,该出去转转打打球,洗个澡舒服的睡个觉了。(下一节准备写PHP服务端极光推送接口的使用)

/***********************************************************************************************

*原创文章,转载请注明网址:http://blog.csdn.net/mybelief321/article/details/45459705

*鲁阳高科工作室

*网       址:www.bigbearking.com

*商务合作QQ:1519190237

*业 务 范 围:网站建设、桌面软件开发、Android\IOS开发、图像影视后期处理、PCB设计

***********************************************************************************************/

时间: 2024-08-05 02:35:43

Android客户端与PHP服务端通信(五)---移植使用极光推送的相关文章

Android客户端与PHP服务端通信(二)

概述 本节通过一个简单的demo程序简单的介绍Android客户端通过JSON向PHP服务端提交订单,PHP服务端处理订单后,通过JSON返回结果给Android客户端.正常来讲,PHP服务端在处理订单过程中,需要与MySQL数据库交互,这里为了简单起见,暂时省掉MySQL. 通信格式 首先,需要定下客户端与服务端之间通信格式,如下表 Android客户端 客户端与服务端采用JSON数据格式通信,同时采用HTTP通信协议交互,采用POST方式提交结果.同时还要注意一点,与WEB服务器通信的过程需

Android客户端与PHP服务端通信(四)---极光推送示例工程分析

概述 上一节,描述了注册极光推送并使用其例子的方法,这一节准备研究一下示例工程的框架,为移植它做准备. 分析例程源码 首先分析一下例程的源码结构,建议对照着JPUSH的官方文档(http://docs.jpush.io/)分析,我就是这样做的. 注册应用后,下载的示例工程结构如下, ExampleApplication.java:该类为应用程序定制了一个Application类,因为调用JPush的SDK时,需要调用JPush提供的init()函数API,而按照官方文档的说明"init 只需要在

Android客户端与PHP服务端通信(三)---极光推送使用

概述 推送消息的方式有很多,在这里我选择了极光推送.本节分为上下两部分,首先通过注册极光推送并使用其Demo程序来看一下推送的效果,然后再一步一步的修改到自己的应用上. 注册登录极光推送 开发人员基本上都了解使用第三方的库,很多都需要注册才能使用,极光推送也不例外.直接登录极光推送官网https://www.jpush.cn/,注册自己的账号,注册的流程就不介绍了,这个都会.注册完直接登录, 登录后,可以由下图看到自己还没有创建任何应用. 创建应用 点击"创建应用",界面变为下图. 按

Android客户端与PHP服务端交互(一)---框架概述

背景 作为一个普通上班族,总是想做一些自认为有意义的事情,于是乎准备成立一个工作室,尽管目前正在筹备阶段,但是之前有些朋友提出一些需求的时候,我发现自己的能力还是有限,直到最近和一些技术牛朋友聊起这事儿,大家不谋而合,也准备加入小团队.只是我作为工作室的“业务员”,感觉有必要都了解一下,这样才好和客户沟通,提出解决方案,也方便大家讨论订方案.譬如之前有商家提出的在线订单,要求客户可以使用APP直接下单,商家处理订单.当时我不是很懂,自己接不了,现在和朋友交流后,准备学习一下. 框架 ① 客户提交

Android客户端与PHP服务端交互(一)

背景 作为一个普通上班族,总是想做一些自认为有意义的事情,于是乎准备成立一个工作室,尽管目前正在筹备阶段,但是之前有些朋友提出一些需求的时候,我发现自己的能力还是有限,直到最近和一些技术牛朋友聊起这事儿,大家不谋而合,也准备加入小团队.只是我作为工作室的"业务员",感觉有必要都了解一下,这样才好和客户沟通,提出解决方案,也方便大家讨论订方案.譬如之前有商家提出的在线订单,要求客户可以使用APP直接下单,商家处理订单.当时我不是很懂,自己接不了,现在和朋友交流后,准备学习一下. 框架 ①

微信app支付android客户端以及.net服务端实现

由于公司运营需要,需要在客户端(android/ios)增加微信以及支付宝支付,在调用微信app支付时遇到一些问题,也算是一些踩过的坑,记录下来 ,希望能对.net开发者服务端网站更快的集成微信app支付. 1.开发所需资料:微信开放平台应用的appid以及appsecert,商户平台的商户号以及api安全里面里面设置的key,详见 微信支付账户相关信息; 2.微信开发者平台完善应用平台的相关信息,android应用签名必须用打包签名过的发布版本apk(这一步很重用),包名必须一致,可以用微信提

七牛云存储android客户端及java服务端代码编写

前一篇博客提到让我很伤心的c应用,由于是一款供用户上传图片的应用,因此必须解决图片存储问题,如果直接将图片存储至服务器,当用户上传图片较多,服务器空间将很快吃紧,同时也没有那么大的带宽,现实中我买的阿里云服务器是最低配置,数据盘才20G,带宽才1M,如果用这样配置的服务器做图片存储,那实在太扯了.于是很自然的想到用图片云存储服务器,通过不断查找资料,最后将目标定位在七牛云和又拍云.在做选择时,主要对比了两者之间的价格及技术优势,也看了很多相关话题讨论,个人认为这两者无论从技术方案还是产品价格,都

android客户端和java服务端用aes加密

最近在公司做一个项目,老大让我们实现加解密的方法,我把工作直接推给了java服务端,他们也是直接在网上copy的代码,说我直接放到我的android代码中就可以了,不需要太多的更改.我就照做了,但是在真正的测试的时候,发现两边输入的密码一致,但是加密结果不一致.这可折磨我们了好久,最终解决了这个问题,加以记录. android和java加密结果不一样的原因,是因为他们的默认随机数序列不一致,所以解决他的办法是,不要使用默认的创建方法. 以下是正确的代码.android和java端的代码是一致的.

android客户端 与javaweb服务端的简单理解

客户端定义的变量 永远都是一个人在用,所以定义成类的成员变量不会产生脏数据,对成员变量的访问都是一个线程 一个人在操作.可以尽可能的使用成员变量. Java服务端的程序  是并发的,有可能并发数会很大超过100多,后台的程序都是多人多线程访问,所以减少业务层成员变量的定义,尽量定义方法内的局部变量.在多线程运行方法 ,都是每个线程 分配给方法一个栈区域内存,每个方法内的 对象都是唯一,都是 new的.