简单看了一下源码的实现,这里贴一点个人觉得比叫重要的代码。
XmppManager.java
public XmppManager(NotificationService notificationService)
在这里主要是从共享引用中取得xmpp服务器地址和端口号、用户名和密码。
private class ConnectTask implements Runnable
这个内部类主要实现的是连接服务器的操作。通过connection.connect();实现连接服务器。通过如下语句实现发送连接消息。
ProviderManager.getInstance().addIQProvider("notification",
"androidpn:iq:notification",
new NotificationIQProvider());
最后通过xmppManager.runTask();执行任务队列中的任务。
private class RegisterTask implements Runnable
这个内部类主要实现的是在服务器上注册用户的操作。如果没有注册,随即生成用户名和密码注册到服务器上。同样通过connection.sendPacket(registration);发送消息实现注册功能。
private class LoginTask implements Runnable
这个内部类主要实现的是用户的登录操作。通过注册到服务器上的用户名和密码登录到服务器上。最后通过connection.addPacketListener(packetListener, packetFilter);实现消息的监听。最后一样通过xmppManager.runTask();在消息队列中执行任务(执行这个线程)。这个类就是实现服务器推动的主要类。
上述为客户端的实现。总的来说客户端仍然是通过xmpp协议实现消息的传输。值得注意的是在NotificationService这个类中(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);方法取得了系统的消息的相关服务。主要为类是取得设备的ID,但我在源码中没有看到使用这个设备ID的地方。很是不解,看来还是需要继续深入的研究。
哈哈。到现在为止,总共完成了对openfire开发环境、openfire插件的制作、smack和openfire通信、androidpn的部署方式以及androidpn的使用方法的研究调研工作。对这些方面都是停留在皮毛,希望以后可以通过实际应用可以学到更加深层次的东西。对了,听一位业内人士说,xmpp是很复杂的,希望以后我能更加了解一点。
明天研究写什么呢?明天可能要计划一下怎么把公司现有的工作流做到android上来。
未完待续...
分享到:
相关推荐
AndroidPN(Android Push Notification)是Android平台上的一种消息推送服务,旨在帮助开发者实现在应用程序后台时仍然能够接收服务器发送的通知或数据。在AndroidPN服务器推送的实现中,有以下几个关键知识点: 1....
AndroidPN环境搭建 本文件真对网上的环境搭建源网站无法登陆设立 <坏掉了/>http://sourceforge.net/projects/androidpn/ </坏掉了> 说明: http://www.cnblogs.com/devxiaobai/archive/2011/07/09/2101794.html ...
在Android平台上,AndroidPN(Android Push Notification)是一个用于实现远程推送通知服务的开源项目。它允许开发者通过服务器向Android设备发送消息,即使应用程序在后台运行或完全关闭时也能接收到这些消息。本...
"经过修改的Androidpn项目"是一个专为Android平台设计的即时通讯解决方案,源自韩国开发者最初的Androinpn项目。此项目经过国内开发者的修改和完善,不仅加入了中文注释,使得国内用户更容易理解和学习代码,同时也...
这里我们关注的是一个特定的配置——"androidpn tomcat + oracle 版本"。这个配置涉及到AndroidPN服务在Tomcat应用服务器上运行,并与Oracle数据库进行集成。让我们深入探讨这个主题,了解其中涉及的关键知识点。 ...
AndroidPN(Android Push Notification)是一个开源项目,旨在为Android应用程序提供简单、高效的后台推送通知服务。这个项目通常需要与服务器端的组件配合工作,其中Tomcat作为常用的Java应用服务器,常常被用于...
Androidpn客户端 和服务端源码下载,实现了消息推送。具体使用方法可百度。
AndroidPN(Android Push Notification)是一种基于XMPP(Extensible Messaging and Presence Protocol)协议的开源消息推送客户端,主要用于Android平台。XMPP是一种开放标准的即时通讯协议,它允许应用程序通过...
在Android开发中,AndroidPN(Android Push Notification)是一种常见的服务,用于实现在服务器端向Android设备推送消息。本文将深入探讨如何将AndroidPN-server与Tomcat应用服务器进行整合,以便在MyEclipse环境中...
将androidpn集成到我们平时开发的javaee中,直接启动tomcat就可以启动xmpp服务,不需要另外部署androidpn。 注释:项目有点大,所以没有上传jar包,可以直接使用项目中的maven下载所需jar文件
AndroidPN(Android Push Notifications)是专门为Android平台设计的一个推送通知服务。这个源码包包含了在Eclipse集成开发环境中运行的项目,以及与Tomcat服务器配合使用的部分。在深入讲解相关知识点之前,先来...
"AndroidPN—Demo"是一个基于Android平台的推送通知服务示例项目,主要展示了如何实现设备的登录、连接以及接收远程推送消息的功能。AndroidPN(Android Push Notification)是一种服务,允许开发者向他们的Android...
"AndroidPN-client-0.5.0"是一个针对Android平台的Push Notification服务的客户端库,主要功能是为了实现设备与服务器之间的即时通信。Push Notification服务在移动应用开发中扮演着重要角色,它允许服务器向已安装...
AndroidPN,全称为Android Push Notification,是一个开源项目,旨在为Android设备提供实时的推送通知服务。这个服务允许服务器向已连接的Android设备发送消息,即使应用程序在后台运行或完全关闭时也能接收到这些...
AndroidPN,全称为Android Push Notification,是一个开源的Android平台上的推送通知服务,它允许服务器向设备发送消息,即使应用程序在后台或完全关闭时也是如此。在本文中,我们将深入探讨如何解决AndroidPN服务端...
AndroidPN(Android Push Notification)是专门为Android平台设计的一种推送服务,它允许服务器向移动设备发送实时消息,从而提高应用程序的互动性和效率。AndroidPN客户端代码是实现这一功能的关键部分,它处理与...
androidpn客户端需要用到一个基于java的开源XMPP协议包asmack,这个包同样也是基于openfire下的另外一个开源项目smack,不过我们不需要自己编译,可以直接把androidpn客户端里面的asmack.jar拿过来用。客户端利用...
AndroidPN(Android Push Notification)是一个开源项目,旨在为Android设备提供推送通知服务。加强版本通常意味着这个项目在原版的基础上进行了优化和改进,以提供更好的性能、更多的功能或更高的稳定性。基于XMPP...