AdXmpp.zip
大小:2MB
价格:23积分
下载量:0
评分:
5.0
上传者:sb1356
更新日期:2011-12-30

Android XMPP例子(Openfire+asmack+spark)

资源文件列表(大概)

文件名
大小
AdXmpp/
-
AdXmpp/.classpath
417B
AdXmpp/.project
842B
AdXmpp/AndroidManifest.xml
1.34KB
AdXmpp/assets/
-
AdXmpp/bin/
-
AdXmpp/bin/AdXmpp.apk
470.5KB
AdXmpp/bin/classes/
-
AdXmpp/bin/classes/com/
-
AdXmpp/bin/classes/com/xmpp/
-
AdXmpp/bin/classes/com/xmpp/client/
-
AdXmpp/bin/classes/com/xmpp/client/FileAdapter$ViewHolder.class
484B
AdXmpp/bin/classes/com/xmpp/client/FileAdapter.class
3.39KB
AdXmpp/bin/classes/com/xmpp/client/FormClient$1$1$1.class
2.29KB
AdXmpp/bin/classes/com/xmpp/client/FormClient$1$1.class
2.14KB
AdXmpp/bin/classes/com/xmpp/client/FormClient$1$2.class
1.17KB
AdXmpp/bin/classes/com/xmpp/client/FormClient$1.class
3.18KB
AdXmpp/bin/classes/com/xmpp/client/FormClient$2$1.class
1.67KB
AdXmpp/bin/classes/com/xmpp/client/FormClient$2.class
1.07KB
AdXmpp/bin/classes/com/xmpp/client/FormClient$3.class
1005B
AdXmpp/bin/classes/com/xmpp/client/FormClient$4.class
2.16KB
AdXmpp/bin/classes/com/xmpp/client/FormClient$5.class
2.19KB
AdXmpp/bin/classes/com/xmpp/client/FormClient$Msg.class
737B
AdXmpp/bin/classes/com/xmpp/client/FormClient$MyAdapter.class
2.22KB
AdXmpp/bin/classes/com/xmpp/client/FormClient$RecFileTransferListener.class
1.64KB
AdXmpp/bin/classes/com/xmpp/client/FormClient.class
6.14KB
AdXmpp/bin/classes/com/xmpp/client/FormFiles$1.class
1.81KB
AdXmpp/bin/classes/com/xmpp/client/FormFiles.class
2.86KB
AdXmpp/bin/classes/com/xmpp/client/FormLogin$1.class
1.12KB
AdXmpp/bin/classes/com/xmpp/client/FormLogin$2.class
2.37KB
AdXmpp/bin/classes/com/xmpp/client/FormLogin.class
2.29KB
AdXmpp/bin/classes/com/xmpp/client/R$attr.class
331B
AdXmpp/bin/classes/com/xmpp/client/R$drawable.class
602B
AdXmpp/bin/classes/com/xmpp/client/R$id.class
1.25KB
AdXmpp/bin/classes/com/xmpp/client/R$layout.class
577B
AdXmpp/bin/classes/com/xmpp/client/R$string.class
389B
AdXmpp/bin/classes/com/xmpp/client/R.class
510B
AdXmpp/bin/classes/com/xmpp/client/util/
-
AdXmpp/bin/classes/com/xmpp/client/util/TimeRender.class
767B
AdXmpp/bin/classes/com/xmpp/client/util/TransferUtils.class
3.13KB
AdXmpp/bin/classes/com/xmpp/client/util/XmppTool.class
1.24KB
AdXmpp/bin/classes.dex
1012.7KB
AdXmpp/bin/res/
-
AdXmpp/bin/res/drawable/
-
AdXmpp/bin/res/drawable/im.png
4.65KB
AdXmpp/bin/res/drawable/incoming.9.png
1.86KB
AdXmpp/bin/res/drawable/outgoing.9.png
1.89KB
AdXmpp/bin/res/drawable-hdpi/
-
AdXmpp/bin/res/drawable-hdpi/fileback.png
2.97KB
AdXmpp/bin/res/drawable-hdpi/filetype.png
3.33KB
AdXmpp/bin/res/drawable-hdpi/folder.png
4.05KB
AdXmpp/bin/res/drawable-hdpi/icon.png
3.87KB
AdXmpp/bin/res/drawable-hdpi/p12.png
10.71KB
AdXmpp/bin/res/drawable-ldpi/
-
AdXmpp/bin/res/drawable-ldpi/icon.png
1.5KB
AdXmpp/bin/res/drawable-mdpi/
-
AdXmpp/bin/res/drawable-mdpi/icon.png
2.15KB
AdXmpp/bin/resources.ap_
47.68KB
AdXmpp/gen/
-
AdXmpp/gen/com/
-
AdXmpp/gen/com/xmpp/
-
AdXmpp/gen/com/xmpp/client/
-
AdXmpp/gen/com/xmpp/client/R.java
2.67KB
AdXmpp/lib/
-
AdXmpp/lib/asmack.jar
1.09MB
AdXmpp/proguard.cfg
1.13KB
AdXmpp/project.properties
360B
AdXmpp/res/
-
AdXmpp/res/drawable/
-
AdXmpp/res/drawable/im.png
7.3KB
AdXmpp/res/drawable/incoming.9.png
1.61KB
AdXmpp/res/drawable/outgoing.9.png
1.64KB
AdXmpp/res/drawable-hdpi/
-
AdXmpp/res/drawable-hdpi/fileback.png
3.04KB
AdXmpp/res/drawable-hdpi/filetype.png
3.4KB
AdXmpp/res/drawable-hdpi/folder.png
6.71KB
AdXmpp/res/drawable-hdpi/icon.png
4.05KB
AdXmpp/res/drawable-hdpi/p12.png
10.76KB
AdXmpp/res/drawable-ldpi/
-
AdXmpp/res/drawable-ldpi/icon.png
1.68KB
AdXmpp/res/drawable-mdpi/
-
AdXmpp/res/drawable-mdpi/icon.png
2.51KB
AdXmpp/res/layout/
-
AdXmpp/res/layout/formclient.xml
1.91KB
AdXmpp/res/layout/formclient_chat_in.xml
1.48KB
AdXmpp/res/layout/formclient_chat_out.xml
1.56KB
AdXmpp/res/layout/formlogin.xml
3.32KB
AdXmpp/res/layout/frmfiles.xml
368B
AdXmpp/res/layout/frmfiles_row.xml
543B
AdXmpp/res/values/
-
AdXmpp/res/values/strings.xml
104B
AdXmpp/src/
-
AdXmpp/src/com/
-
AdXmpp/src/com/xmpp/
-
AdXmpp/src/com/xmpp/client/
-
AdXmpp/src/com/xmpp/client/FileAdapter.java
2.68KB
AdXmpp/src/com/xmpp/client/FormClient.java
10.26KB
AdXmpp/src/com/xmpp/client/FormFiles.java
1.8KB
AdXmpp/src/com/xmpp/client/FormLogin.java
2.6KB
AdXmpp/src/com/xmpp/client/util/
-
AdXmpp/src/com/xmpp/client/util/TimeRender.java
395B
AdXmpp/src/com/xmpp/client/util/TransferUtils.java
2.28KB
AdXmpp/src/com/xmpp/client/util/XmppTool.java
806B

资源内容介绍

Android XMPP例子(Openfire+asmack+spark)
package com.xmpp.client;import java.io.File;import java.util.ArrayList;import java.util.List;import java.util.Timer;import java.util.TimerTask;import org.jivesoftware.smack.Chat;import org.jivesoftware.smack.ChatManager;import org.jivesoftware.smack.ChatManagerListener;import org.jivesoftware.smack.MessageListener;import org.jivesoftware.smack.XMPPException;import org.jivesoftware.smack.packet.Message;import org.jivesoftware.smackx.filetransfer.FileTransfer;import org.jivesoftware.smackx.filetransfer.FileTransfer.Status;import org.jivesoftware.smackx.filetransfer.FileTransferListener;import org.jivesoftware.smackx.filetransfer.FileTransferManager;import org.jivesoftware.smackx.filetransfer.FileTransferRequest;import org.jivesoftware.smackx.filetransfer.IncomingFileTransfer;import org.jivesoftware.smackx.filetransfer.OutgoingFileTransfer;import com.xmpp.client.util.TimeRender;import com.xmpp.client.util.XmppTool;import android.app.Activity;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.ProgressBar;import android.widget.TextView;public class FormClient extends Activity {private MyAdapter adapter;private List<Msg> listMsg = new ArrayList<Msg>();private String pUSERID;private EditText msgText;private ProgressBar pb;public class Msg {String userid;String msg;String date;String from;public Msg(String userid, String msg, String date, String from) {this.userid = userid;this.msg = msg;this.date = date;this.from = from;}}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.formclient);this.pUSERID = getIntent().getStringExtra("USERID");ListView listview = (ListView) findViewById(R.id.formclient_listview);listview.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);this.adapter = new MyAdapter(this);listview.setAdapter(adapter);this.msgText = (EditText) findViewById(R.id.formclient_text);this.pb = (ProgressBar) findViewById(R.id.formclient_pb);//message listenerChatManager cm = XmppTool.getConnection().getChatManager();final Chat newchat = cm.createChat("test2@sam", null);cm.addChatListener(new ChatManagerListener() {@Overridepublic void chatCreated(Chat chat, boolean able) {chat.addMessageListener(new MessageListener() {@Overridepublic void processMessage(Chat chat2, Message message) {//message from user [test2@sam]if(message.getFrom().contains("test2@sam")){String[] args = new String[] { "test2", message.getBody(), TimeRender.getDate(), "IN" };android.os.Message msg = handler.obtainMessage();msg.what = 1;msg.obj = args;msg.sendToTarget();}else{// orther user / group / admin of the openfire// do work...}}});}});//send fileButton btattach = (Button) findViewById(R.id.formclient_btattach);btattach.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Intent intent = new Intent(FormClient.this, FormFiles.class);startActivityForResult(intent, 2);}});//send messageButton btsend = (Button) findViewById(R.id.formclient_btsend);btsend.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String msg = msgText.getText().toString();if(msg.length() > 0){listMsg.add(new Msg(pUSERID, msg, TimeRender.getDate(), "OUT"));adapter.notifyDataSetChanged();try {newchat.sendMessage(msg);} catch (XMPPException e) {e.printStackTrace();}}msgText.setText("");}});//receive fileFileTransferManager fileTransferManager = new FileTransferManager(XmppTool.getConnection());fileTransferManager.addFileTransferListener(new RecFileTransferListener());}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if(requestCode==2 && resultCode==2 && data!=null){String filepath = data.getStringExtra("filepath");if(filepath.length() > 0){sendFile(filepath);}}}private void sendFile(String filepath) {// ServiceDiscoveryManager sdm = new ServiceDiscoveryManager(connection);final FileTransferManager fileTransferManager = new FileTransferManager(XmppTool.getConnection());final OutgoingFileTransfer fileTransfer = fileTransferManager.createOutgoingFileTransfer("test2@sam/Spark 2.6.3");final File file = new File(filepath);try {fileTransfer.sendFile(file, "Sending");} catch (Exception e) {e.printStackTrace();}new Thread(new Runnable() {@Overridepublic void run() {try{while (true) {Thread.sleep(500L);Status status = fileTransfer.getStatus();if ((status == FileTransfer.Status.error)|| (status == FileTransfer.Status.complete)|| (status == FileTransfer.Status.cancelled)|| (status == FileTransfer.Status.refused)) {handler.sendEmptyMessage(4);break;}else if(status == FileTransfer.Status.negotiating_transfer){//..}else if(status == FileTransfer.Status.negotiated){//..}else if(status == FileTransfer.Status.initial){//..}else if(status == FileTransfer.Status.negotiating_stream){//..}else if(status == FileTransfer.Status.in_progress){handler.sendEmptyMessage(2);long p = fileTransfer.getBytesSent() * 100L / fileTransfer.getFileSize();android.os.Message message = handler.obtainMessage();message.arg1 = Math.round((float) p);message.what = 3;message.sendToTarget();}}} catch (Exception e) {e.printStackTrace();}}}).start();}private FileTransferRequest request;private File file;class RecFileTransferListener implements FileTransferListener {@Overridepublic void fileTransferRequest(FileTransferRequest prequest) {System.out.println("The file received from: " + prequest.getRequestor());file = new File("mnt/sdcard/" + prequest.getFileName());request = prequest;handler.sendEmptyMessage(5);}}private Handler handler = new Handler() {public void handleMessage(android.os.Message msg) {switch (msg.what) {case 1:String[] args = (String[]) msg.obj;listMsg.add(new Msg(args[0], args[1], args[2], args[3]));adapter.notifyDataSetChanged();break;case 2:if(pb.getVisibility()==View.GONE){pb.setMax(100);pb.setProgress(0);pb.setVisibility(View.VISIBLE);}break;case 3:pb.setProgress(msg.arg1);break;case 4:pb.setVisibility(View.GONE);break;case 5:final IncomingFileTransfer infiletransfer = request.accept();AlertDialog.Builder builder = new AlertDialog.Builder(FormClient.this);builder.setTitle("receive file").setCancelable(false).setPositiveButton("Receive",new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int id) {try {infiletransfer.recieveFile(file);} catch (XMPPException e) {e.printStackTrace();}handler.sendEmptyMessage(2);Timer timer = new Timer();TimerTask updateProgessBar = new TimerTask() {public void run() {if ((infiletransfer.getAmountWritten() >= request.getFi

用户评论 (0)

发表评论

captcha