import com.google.android.gtalkservice.IGTalkService;
import com.google.android.gtalkservice.IGTalkSession;
import com.google.android.gtalkservice.Presence;
import android.view.View;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.DeadObjectException;
import android.os.IBinder;
import android.provider.Im;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class GtalkActivity extends Activity implements View.OnClickListener {
private EditText login_User = null;
private EditText login_Pwd = null;
private IGTalkSession mGtalkSession = null;
private Button Btn_Login = null;
private Button Btn_Exit = null;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
//EditText: account,password
login_User = (EditText)this.findViewById(R.id.login_et_user);
login_Pwd = (EditText)this.findViewById(R.id.login_et_pwd);
//Button: login,exit
Btn_Login = (Button)this.findViewById(R.id.btn_login);
Btn_Exit = (Button)this.findViewById(R.id.btn_exit);
Btn_Login.setOnClickListener(this);
Btn_Exit.setOnClickListener(this);
}
//display message on screen
private void logMessage(CharSequence msg) {
Toast.makeText(GtalkActivity.this,msg,
Toast.LENGTH_SHORT).show();
}
//service connection
private ServiceConnection mConnection = new ServiceConnection(){
public void onServiceConnected(ComponentName className, IBinder service) {
IGTalkService xmppservice = IGTalkService.Stub.asInterface(service);
try {
//enter account,password
mGtalkSession = xmppservice.createGTalkSession(login_User.getText().toString(),login_Pwd.getText().toString());
if(mGtalkSession == null){
logMessage(getText(R.string.xmpp_session_not_found));
return;
}
if(mGtalkSession != null){
boolean b = false;
try {
b = mGtalkSession.isConnected();
} catch (DeadObjectException ex) {
logMessage("***Check Current State meets Error! Exception->" + ex);
}
if(b){
//connection state
switch(mGtalkSession.getConnectionState()){
case 4: // login successfully
logMessage("successfully logged in to the XMPP server!");
mGtalkSession.setPresence(new Presence(Im.PresenceColumns.AVAILABLE, "Am here now!"));
break;
case 5:
logMessage("the client requested roster from the server.");
break;
case 0: // network problem
logMessage("***ConnectionState.IDLE -> not connected!");
break;
case 2: // connecting....
logMessage("connecting to the server.");
break;
case 3:
logMessage("connected to the server, but not authenticated yet.");
break;
case 1:
logMessage("in a pending state for automatic reconnection.");
break;
default:
logMessage("Unknown ConnectionState!");
break;
}
}
}
} catch (DeadObjectException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//service disconnected
public void onServiceDisconnected(ComponentName componentname) {
mGtalkSession = null;
}
};
//tow buttons bindservice/unbindservice
public void onClick(View view) {
if(view == Btn_Login){
bindService((new Intent()).setComponent(com.google.android.gtalkservice.GTalkServiceConstants.GTALK_SERVICE_COMPONENT),
mConnection,Context.BIND_AUTO_CREATE);
}
if(view == Btn_Exit){
unbindService(mConnection);
logMessage("ServiceDisconnected");
}
}
}
分享到:
相关推荐
在探讨“gtalk样式自定义方法”的过程中,我们首先需要理解GTalk,即Google Talk,是谷歌曾经推出的一款即时通讯软件,它不仅提供了文本聊天、语音通话等功能,还允许用户自定义界面样式,以满足个性化需求。...
GTalk 绿色单文件版
Google Talk(Gtalk)是Google公司开发的即时通讯工具,Gtalk除了具备一般IM功能外,还加上了Viop功能,Gtalk界面清晰大方,可直接链接Gmail,轻松接受邮件。欢迎下载最新版google talk。
《Android平台上的GTalk应用开发解析》 在移动通信领域,Android系统以其开源、灵活的特点深受开发者喜爱。其中,Google Talk(简称GTalk)作为一款即时通讯应用,曾是Android设备上重要的通信工具。本章节将围绕...
gtalk.apk-android
本文将深入探讨“Gtalk C# 开发”这一主题,以帮助你理解如何利用C#来构建一个GTalk客户端,并探索可能的高级功能开发。 GTalk(Google Talk)是Google推出的一款即时通讯服务,它提供了文字聊天、语音通话和视频...
Gtalk_1.3.apk
在本示例中,我们将探讨如何使用ASP.NET来获取MSN(Microsoft Messenger)和GTalk(Google Talk)的好友列表,以便在你的应用中实现朋友邀请功能。 首先,我们需要理解MSN和GTalk的协议。MSN使用微软的实时通信...
标题中的“和gtalk一样的聊天工具”指的是寻找与Google Talk(简称gtalk)类似功能的即时通讯软件。Google Talk是一款由Google推出的即时通讯服务,它允许用户进行文字聊天、语音通话,并与其他Google服务(如Gmail...
android4.0以上,给没有装google服务包的人。
难得资源,gtalk是google聊天工具,挂着几乎没有流量,发消息与接消息占多少用多少流浪,飞信比QQ省流量,精简飞信比飞信省流量,gtalk比精简飞信还省流量。挂着用吧。热爱网络,珍惜收藏
google聊天工具,GTalk英文版,可以进行文件传输,聊天信息进行了加密
【VB.NET GTalk机器人】是一种基于Google Talk(简称GTalk)协议开发的自动化程序,它允许开发者通过VB.NET编程语言创建一个能够与GTalk用户进行交互的机器人。这个机器人不仅能够自动发送预设的消息给指定的好友,...
黑莓上的gtalk+gmail邮件提醒工具:testa。 相应速度非常快,第一时间告知您有新的gmail邮件了。
标题中的“gtalk接口二次开发告警平台”指的是基于Google Talk (gtalk) 的API进行的二次开发项目,主要用于创建一个告警系统。这个系统能够通过gtalk接口发送通知,以便在特定事件或异常发生时及时提醒用户。下面将...
完美解决android电子市场不能下载,Gtalk、Gmail不能正常使用……弄法见内部操作指南
《GTalk:基于XMPP协议的即时通讯解析》 GTalk,全称为Google Talk,是谷歌公司在2005年推出的即时通讯工具,它基于eXtensible Messaging and Presence Protocol(XMPP)协议,也被称为Jabber协议,是IETF(互联网...
【BTalk软件——高效便捷的GTalk替代工具】 BTalk是一款专为用户打造的Google Talk(简称GTalk)替代软件,它以其轻巧的体积、高效的性能和节省流量的特点赢得了用户的喜爱。在GTalk逐渐退出历史舞台后,BTalk成为...
Java GTalk机器人是一种使用Java编程语言开发的程序,它能够与Google Talk(简称Gtalk)聊天服务进行交互,实现自动化消息发送、接收以及各种自定义功能。Gtalk机器人通常是通过Google的Jabber协议实现的,这是一个...