研究Androidpn
来源:互联网 发布:淘宝链接怎么发给客服 编辑:程序博客网 时间:2024/05/11 12:12
根据Androidpn提供的DEMO框架,从中理出了最简单的连接和接收推送的一个DEMO.
package com.test.pn;import org.jivesoftware.smack.Connection;import org.jivesoftware.smack.ConnectionConfiguration;import org.jivesoftware.smack.ConnectionListener;import org.jivesoftware.smack.PacketListener;import org.jivesoftware.smack.XMPPConnection;import org.jivesoftware.smack.XMPPException;import org.jivesoftware.smack.ConnectionConfiguration.SecurityMode;import org.jivesoftware.smack.filter.AndFilter;import org.jivesoftware.smack.filter.PacketFilter;import org.jivesoftware.smack.filter.PacketIDFilter;import org.jivesoftware.smack.filter.PacketTypeFilter;import org.jivesoftware.smack.packet.IQ;import org.jivesoftware.smack.packet.Packet;import org.jivesoftware.smack.packet.Registration;import org.jivesoftware.smack.provider.IQProvider;import org.jivesoftware.smack.provider.ProviderManager;import org.xmlpull.v1.XmlPullParser;import android.app.Service;import android.content.Intent;import android.os.IBinder;import android.util.Log;public class NotificationService extends Service{public void onCreate() {ConnectionConfiguration connConfig = new ConnectionConfiguration( "10.0.2.2", 5222);connConfig.setSecurityMode(SecurityMode.required); connConfig.setSASLAuthenticationEnabled(false); connConfig.setCompressionEnabled(false);Connection connection = new XMPPConnection(connConfig);try {connection.connect();ProviderManager.getInstance().addIQProvider("notification", "androidpn:iq:notification", new IQProvider(){public IQ parseIQ(XmlPullParser parse) throws Exception {Log.i("接收", "接收到消息......");return null;}});Registration registration = new Registration();PacketFilter packetFilter = new AndFilter(new PacketIDFilter( registration.getPacketID()), new PacketTypeFilter( IQ.class));PacketListener packetListener = new PacketListener(){public void processPacket(Packet arg0) {}};connection.addPacketListener(packetListener, packetFilter);registration.setType(IQ.Type.SET);registration.addAttribute("username", "12345"); registration.addAttribute("password", "12345"); connection.sendPacket(registration);connection.login("12345", "12345", "AndroidpnClient");connection.addConnectionListener(new ConnectionListener(){public void connectionClosed() {}public void connectionClosedOnError(Exception arg0) {}public void reconnectingIn(int arg0) {}public void reconnectionFailed(Exception arg0) {}public void reconnectionSuccessful() {}});} catch (XMPPException e) {e.printStackTrace();}super.onCreate();}public void onDestroy() {super.onDestroy();}public void onStart(Intent intent, int startId) {super.onStart(intent, startId);}public IBinder onBind(Intent intent) {return null;}}
再附上所用到的资源:
客户端:http://download.csdn.net/detail/synge33/3580925
服务端: http://download.csdn.net/detail/synge33/3580920
自己整理的客户端的简易DEMO: http://download.csdn.net/detail/synge33/3580934
使用方法可以看下这个人的博客:http://yangzc106.iteye.com/blog/1101595
- 研究Androidpn
- Androidpn客户端和服务器的研究
- androidpn
- Androidpn
- androidpn
- AndroidPN
- androidpn的学习研究(四)androidpn-client客户端几个类说明
- androidpn的学习研究(二)androidpn-server服务端启动过程的理解分析
- androidpn研究成果
- Androidpn分析
- Androidpn分析
- androidpn研究成果
- AndroidPN Client
- androidpn推送
- androidpn研究成果
- Androidpn分析
- androidpn解析
- androidpn配置
- MemoryPool的LockFree实现
- 重要资料保存...
- Android ROM的制作与烧录
- linux 学习
- 正则表达式简介
- 研究Androidpn
- wait() notify/notifyAll()的区别及运用
- [Jobdu] 1005:Graduate Admission
- 解决 multiple definition of
- 怎样编写一个程序,把一个有序整数数组放到二叉树中
- 程序员技术练级攻略
- java.net.InetAddress类的使用
- 反射实现所有实体的增删改操作(jQuery+json)
- C语言文件操作