- 浏览: 415242 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (255)
- Android (53)
- java (57)
- javascript (7)
- linux (19)
- springside3 (6)
- spring (2)
- struts2 (11)
- hibernate (2)
- jsp&servlet (15)
- jquery (1)
- ExtJs (5)
- freemarker (1)
- apache (5)
- mysql (3)
- tomcat (3)
- eclipse&maven (23)
- 电脑小技巧 (1)
- 配置安装 (3)
- 开源框架 (2)
- 设计模式 (2)
- 架构 (2)
- ajax (1)
- 正则表达式 (7)
- 测试 (2)
- 装修 (1)
- 不错的软件 (4)
- http协议 (2)
- 网络 (2)
- windows (2)
- nodejs (1)
最新评论
-
yhyx:
好
JAVA URI URL区别 -
dingbuoyi:
我文章很早以前写的啊 估计软件版本早更新了 你要自己研究一下
windows下Sublime Text 2开发 Nodejs -
di1984HIT:
写的很好,学习了
【转帖】IP网段的计算和划分 -
农民柏柏:
感谢分享
【转】Android实现人人网点击“+”弹出效果 -
lianwanf:
大神,求源码,很想要那jar包.官方的不懂下载啊.谢谢啊. ...
开源框架ignition[二]
首先使用http://java-jml.sf.net/
JML类库
具体类可以参考帖子
http://kenter1643.iteye.com/blog/306649
贴一下代码
但是直接在ANDROID上使用会报错,解决方法如下
添加包sun.security.action
添加类
搞定收工
JML类库
具体类可以参考帖子
http://kenter1643.iteye.com/blog/306649
贴一下代码
package org.scribe.utils; import java.text.SimpleDateFormat; import java.util.Date; import net.sf.jml.MsnContact; import net.sf.jml.MsnList; import net.sf.jml.MsnMessenger; import net.sf.jml.MsnProtocol; import net.sf.jml.MsnSwitchboard; import net.sf.jml.MsnUserStatus; import net.sf.jml.event.MsnAdapter; import net.sf.jml.impl.MsnContactImpl; import net.sf.jml.impl.MsnMessengerFactory; import net.sf.jml.message.MsnControlMessage; import net.sf.jml.message.MsnDatacastMessage; import net.sf.jml.message.MsnInstantMessage; import net.sf.jml.message.MsnSystemMessage; import net.sf.jml.message.MsnUnknownMessage; public class Msntest extends MsnAdapter { private MsnMessenger messenger = null; private String email = null, password = null; /** */ /** Creates a new instance of Msntest */ public Msntest() { } public static void main(String args[]) throws ClassNotFoundException, InstantiationException, IllegalAccessException { Msntest msn = (Msntest) Class.forName("org.dean.msn.Msntest").newInstance();//创建类实例 msn.setEmail("xx@hotmail.com");//设置登录用户 msn.setPassword("xxxx");//设置密码 msn.start(); } //打印信息 private static void msg(Object obj) { SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm"); if (obj instanceof Throwable) { System.err.println("[" + sdf.format(new Date()) + "] " + obj); } else { System.out.println("[" + sdf.format(new Date()) + "] " + obj); } } public void start() { messenger = MsnMessengerFactory.createMsnMessenger(email, password);//创建MsnMessenger messenger.setSupportedProtocol(new MsnProtocol[]{MsnProtocol.MSNP12});//设置登录协议 messenger.getOwner().setInitStatus(MsnUserStatus.ONLINE);//设置用户状态 messenger.addListener(this);//注册事件 messenger.login();//登录 } //收到正常信息的时候发生 @Override public void instantMessageReceived(MsnSwitchboard switchboard, MsnInstantMessage message, MsnContact contact) { msg(contact.getDisplayName() + "对我说:" + message.getContent()); //如果聊天内容为exit,退出 if (message.getContent().trim().equalsIgnoreCase("exit")) { msg(contact.getDisplayName() + "对我发出退出指令。"); messenger.logout(); System.exit(0); } message.setContent("Hello,I'm robot!");//设置要发送消息内容 message.setFontRGBColor((int) (Math.random() * 255 * 255 * 255));//设置消息的文本颜色 switchboard.sendMessage(message);//发送信息 } //收到系统信息的时候发生,登录时 @Override public void systemMessageReceived(MsnMessenger messenger, MsnSystemMessage message) { //msg(messenger + " recv system message " + message); } //当在联系人聊天窗口获得光标并按下第一个键时发生 @Override public void controlMessageReceived(MsnSwitchboard switchboard, MsnControlMessage message, MsnContact contact) { msg(contact.getFriendlyName() + "正在输入文字。"); } //异常时发生 @Override public void exceptionCaught(MsnMessenger messenger, Throwable throwable) { msg(messenger + throwable.toString()); msg(throwable); } //登录完成时发生 @Override public void loginCompleted(MsnMessenger messenger) { msg(messenger.getOwner().getDisplayName() + "登录成功!"); //messenger.getOwner().setDisplayName("天天持之以恒"); } //注销时发生 @Override public void logout(MsnMessenger messenger) { msg(messenger + " logout"); } //收到系统广播信息时发生 @Override public void datacastMessageReceived(MsnSwitchboard switchboard, MsnDatacastMessage message, MsnContact friend) { msg(switchboard + " recv datacast message " + message); switchboard.sendMessage(message, false); } //收到目前不能处理的信息时发生 @Override public void unknownMessageReceived(MsnSwitchboard switchboard, MsnUnknownMessage message, MsnContact friend) { //msg(switchboard + " recv unknown message " + message); } @Override public void contactListInitCompleted(MsnMessenger messenger) { listContacts(); } /** */ /** * 更新好友列表完成时发生 */ @Override public void contactListSyncCompleted(MsnMessenger messenger) { listContacts(); } /** */ /** * 关闭一个聊天窗口时发生 */ @Override public void switchboardClosed(MsnSwitchboard switchboard) { msg("switchboardStarted " + switchboard); } /** */ /** * 打开一个聊天窗口时发生 */ @Override public void switchboardStarted(MsnSwitchboard switchboard) { msg("switchboardStarted " + switchboard); } //打印联系人 private void listContacts() { MsnContact[] cons = messenger.getContactList().getContactsInList(MsnList.AL); if (cons.length == 0) { msg("空"); } else { msg("你现在有" + cons.length + "个联系人"); } for (int i = 0; i < cons.length; i++) { System.out.println("邮箱============>"+cons[i].getEmail()); String personal = ((MsnContactImpl) cons[i]).getPersonalMessage().equals("") ? "空" : ((MsnContactImpl) cons[i]).getPersonalMessage(); msg(cons[i].getDisplayName() + " " + cons[i].getEmail() + " " + cons[i].getStatus() + " " + personal); } } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
但是直接在ANDROID上使用会报错,解决方法如下
添加包sun.security.action
添加类
public class GetPropertyAction implements java.security.PrivilegedAction<String> { private String theProp; private String defaultVal; @Override public String run() { String value = System.getProperty(theProp); return (value == null) ? defaultVal : value; } public GetPropertyAction(String theProp, String defaultVal) { this.theProp = theProp; this.defaultVal = defaultVal; } public GetPropertyAction(String theProp) { this.theProp = theProp; } }
搞定收工
发表评论
-
listview 几个重要属性
2012-06-20 06:54 1014参考资料 http://www.cnblogs ... -
android项目mvn开发
2012-06-19 07:12 962项目主页 http://code.google.com/p/m ... -
你真的会用AsyncTask吗
2012-06-24 19:24 1506一个典型的AsyncTask应用 public class ... -
关于AsyncTask的RejectedExecutionException异常
2012-06-24 19:24 3215当运行的AsyncTask 实例数量过多的时候会引发Rejec ... -
android.view.WindowManager$BadTokenException: Unable to add window -- token andr
2012-06-08 09:59 13087因为使用了AsyncTask 异步线程在线程完成以后的onPo ... -
ADT 17 导入JAR包
2012-06-07 17:48 1195引用 Eclipse ADT 17 以上版本用户,请在工程目录 ... -
android textview 自动链接网址 修改默认点击事件
2012-06-06 18:04 108091 修改XML文件即可,android:autoLink=&q ... -
【转】Android项目更换开发环境时出现的 java.lang.VerifyError 异常解决办法
2012-06-06 07:55 971引用 项目是从同事的电脑上直接拷贝过来的,项目里面的jar包是 ... -
android 判断Service是否开启
2012-05-31 10:12 3535被判断的Service 必须是带包名的全名 通过Servic ... -
android 写入收件箱
2012-05-21 10:58 852<uses-permission android: ... -
ndroid junit入门(四)Service测试
2012-05-18 11:26 801public class TestService exte ... -
android junit入门(五)@SmallTest@MediumTest@LargeTest
2012-05-18 11:00 4001原文http://googletesting.blogspot ... -
android junit入门(三)Application测试
2012-05-18 10:54 1140测试Application public class T ... -
android junit入门(二)Activity测试
2012-05-18 10:38 2359测试ACTIVITY 直接上类了 public clas ... -
android junit入门(一) JUNIT测试
2012-05-18 09:54 1359新建ANDROID TEST项目 ECLIPSE右键--> ... -
imagebutton 带文字
2012-05-16 13:59 921<FrameLayout ... -
android orm
2012-05-10 17:58 1000选择了http://ormlite.com/ 里面还支持AN ... -
android 隐藏虚拟按键
2012-05-09 16:14 11222一 全部隐藏 可以试下 <uses-sdk andro ... -
android 切图
2012-05-03 15:19 14681 程序launcher icons规格 3 ... -
新浪微博API杂记
2012-05-02 17:14 9271 获取指定用户的微博 https://api.weibo.c ...
相关推荐
在Android系统中,获取Wi-Fi列表是开发移动应用时常见的需求,这主要涉及到与网络连接相关的API交互。本文将详细讲解如何在Android中获取Wi-Fi列表,并根据信号强度来显示不同的网络图标。 首先,要获取Wi-Fi列表,...
"android获取程序详细权限列表"这个话题旨在探讨如何编程获取安装在Android设备上的应用所拥有的所有权限信息。以下是对这个主题的详细解释。 首先,Android系统采用了一种基于权限的模型来控制应用程序对资源和...
在Android设备中,按Back键会将当前的Activity出栈销毁,而按HOME键却会将之隐藏到后台。如若有多个这样的程序这样操作,我们不知道后台到底有多少个正在运行的应用程序。此程序的目的就列举出后台正在运行的应用...
在Android平台上,获取Wi-Fi列表是一项常见的任务,尤其对于开发者来说,这有助于构建与网络相关的应用,例如Wi-Fi热点管理、网络诊断等。本教程将详细介绍如何基于ListFragment框架来实现这一功能,这对于初学者来...
在Android平台上,获取当前桌面壁纸是一项常见的任务,尤其在开发个性化应用或与用户界面相关的功能时。本篇文章将深入探讨如何实现这一功能,基于提供的链接(已无法访问,但可以根据历史资料推测方法)以及Android...
本话题关注的是如何在JNI中获取Android设备的MAC地址。 MAC(Media Access Control)地址是网络设备的物理地址,每个设备在网络中都有一个唯一的MAC地址,用于数据传输中的寻址。在Android系统中,由于安全和隐私...
在Android平台上,获取通讯录中的联系人信息是常见的功能需求,尤其当需要处理与电子邮件相关的应用时。这个DEMO展示了如何有效地读取那些在联系人信息中设置了电子邮件地址的联系人。下面我们将深入探讨实现这一...
"Android中获取GSM、CDMA、Wifi信号强度" Android 中获取 GSM、CDMA、Wifi 信号强度是一个非常重要的功能,特别是在实现某些特定的应用场景时。例如,在某些地区,GSM 信号强度可能会很弱,而 CDMA 信号强度可能会...
在Android系统中,获取照片的拍摄日期以及其他相关信息是通过读取图像文件的元数据来实现的。这些元数据通常存储在JPEG文件的Exchangeable Image File Format (EXIF) 标签中。以下是一些关键步骤和知识点,教你如何...
在Android平台上进行音频处理时,Fast Fourier Transform(FFT)是一种常用的技术,用于将时域信号转换为频域信号,从而分析音频数据中的频率成分。本文将深入探讨如何使用Android的FFT来获取音频频率,并实现实时...
获取带有以太网接口的android系统中ethernet和wifi连接信息(连接状态,IP地址,dns,netmask等信息)
本篇文章将详细阐述如何使用`ActivityManager.RunningServiceInfo`来获取Android设备上当前正在运行的服务信息。 `ActivityManager`是Android SDK提供的一个系统服务,它提供了对应用活动生命周期管理的功能,其中...
在Android系统中,开发者可以通过Android提供的API来获取系统的内存信息以及正在运行的进程状态。这一功能主要涉及到`ActivityManager`类的使用。`ActivityManager`是Android SDK中的一个关键组件,它提供了对系统...
在Android平台上,获取手机短信是一项常见的功能,尤其在开发与通信相关的应用时。本文将深入讲解如何通过Android SDK来实现这一功能,同时提供一个名为"SMSTest"的源代码示例。 首先,我们需要理解Android系统中...
在Android开发中,获取手机上的所有图片并进行列表展示是一项常见的需求,这通常涉及到多媒体文件的访问、数据的加载和UI的设计。以下是一些相关的知识点: 1. **多媒体存储权限**: 在Android 6.0(API级别23)及...
3. 获取邮件:使用`Folder`对象的`getMessages()`方法获取邮件列表。每个`Message`对象代表一封邮件,可以进一步解析其内容、附件等。 4. 解析邮件:`Message`对象提供了许多方法来获取邮件信息,如`getFrom()`, `...
在Android平台上,获取WiFi网络的IP地址、子网掩码、网关以及DNS信息是开发者经常需要处理的任务,这有助于实现各种网络相关的功能,比如网络诊断、设备间通信或者网络状态监控。以下将详细介绍如何在Android中获取...
Android获取USB扫描枪扫描数据。Android 平板热插拔USB扫描枪应用场景多,在有界面如EditText时,扫描枪扫描内容自动输入到编辑框了,在没有界面的情况下如何获取扫描枪数据呢。AccessibilityService不了解的同学看...
在Android平台上,获取CPU使用率和内存实时数据是开发者进行性能监控、优化应用或实现系统监控功能的关键步骤。本文将详细介绍如何在Android中获取这些关键信息,并提供相关的代码示例。 首先,我们要理解CPU使用率...
实现通过GPS或NetWork获取当前位置的经纬度,并且在Google Map Android v2上显示