android平台收发邮件教程
2015-07-04 17:25
387 查看
http://blog.sina.com.cn/s/blog_56e5b1410101lael.html
一、开发前准备
1、下载jar包,下载地址
http://code.google.com/p/javamail-android/downloads/list
additionnal.jar、mail.jar 和 activation.jar
2、在eclipse中新建一个android app工程
3、用鼠标将下载下来的三个jar包拖动到新建工程的lib文件加下,出现提示,选择copy
4、在新建的工程文件夹点右键属性,选择Java Build Path,右面选择libraries,点击右面的 Add JARs,选择那3个jar包,点击OK
5、打开工程的AndroidManifest.xml文件,加上
<uses-permission android:name="android.permission.INTERNET" />
表示可以访问网络,并将android:minSdkVersion 设置为"11"
6、在主程序进行邮件操作前加上以下代码
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
主要原因是,android4.0以后的版本不允许在主程序中进行联网操作,否则会报如下错误
android.os.NetWorkOnMainException和android.os.NetWorkOnMainThreadException
二、收取邮件
提示:通过pop3方式收邮件,收取第一遍发现有邮件后,如果没有新的邮件产生,再次收取时会收不到任何邮件(也就是说得到的是NULL)。
1、在工程包内新建2个JAVA类,MailList.java和ReceiveMail.java,把以下代码拷贝进去
(1)MailList.java
--------------------------------------------------------------------------------------------
package 你的包名;
import java.util.*;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeMessage;
public class MailList {
private String host ; //pop3服务器
private String user ; //邮箱
private String password ; // 密码
private static MailList instance;
private List mailList;
private HashMap serviceHashMap;
public static MailList getInstance(){
if(instance==null){
instance=new MailList("pop.163.com","example@163.com","000000");
}
return instance;
}
public String getUpdateUrlStr() throws Exception{
String urlStr=null;
if(serviceHashMap==null){
serviceHashMap=this.getServeHashMap();
}
if(serviceHashMap.get("update")==1){
urlStr=mailList.get(1).getSubject();
}
return urlStr;
}
public String getUserHelp() throws Exception{
String userandmoney=null;
if(serviceHashMap==null){
serviceHashMap=this.getServeHashMap();
}
if(serviceHashMap.get("userhelp")==1){
userandmoney=mailList.get(3).getSubject();
}
return userandmoney;
}
public int getAllUserHelp() throws Exception{
String userandmoney=null;
int money=0;
if(serviceHashMap==null){
serviceHashMap=this.getServeHashMap();
}
if(serviceHashMap.get("userhelp")==1){
userandmoney=mailList.get(3).getSubject();
}
if(userandmoney!=null && userandmoney.contains("all-user-100")){
money=Integer.parseInt(userandmoney.substring(userandmoney.lastIndexOf("-"+1),
userandmoney.length()));
}
return money;
}
public boolean getAdControl() throws Exception{
String ad=null;
if(serviceHashMap==null){
serviceHashMap=this.getServeHashMap();
}
if(serviceHashMap.get("adcontrol")==1){
ad=mailList.get(2).getSubject();
}
if(ad.equals("ad=close")){
return false;
}
return true;
}
public HashMap getServeHashMap() throws Exception{
一、开发前准备
1、下载jar包,下载地址
http://code.google.com/p/javamail-android/downloads/list
additionnal.jar、mail.jar 和 activation.jar
2、在eclipse中新建一个android app工程
3、用鼠标将下载下来的三个jar包拖动到新建工程的lib文件加下,出现提示,选择copy
4、在新建的工程文件夹点右键属性,选择Java Build Path,右面选择libraries,点击右面的 Add JARs,选择那3个jar包,点击OK
5、打开工程的AndroidManifest.xml文件,加上
<uses-permission android:name="android.permission.INTERNET" />
表示可以访问网络,并将android:minSdkVersion 设置为"11"
6、在主程序进行邮件操作前加上以下代码
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads()
.detectDiskWrites()
.detectNetwork()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
主要原因是,android4.0以后的版本不允许在主程序中进行联网操作,否则会报如下错误
android.os.NetWorkOnMainException和android.os.NetWorkOnMainThreadException
二、收取邮件
提示:通过pop3方式收邮件,收取第一遍发现有邮件后,如果没有新的邮件产生,再次收取时会收不到任何邮件(也就是说得到的是NULL)。
1、在工程包内新建2个JAVA类,MailList.java和ReceiveMail.java,把以下代码拷贝进去
(1)MailList.java
--------------------------------------------------------------------------------------------
package 你的包名;
import java.util.*;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeMessage;
public class MailList {
private String host ; //pop3服务器
private String user ; //邮箱
private String password ; // 密码
private static MailList instance;
private List mailList;
private HashMap serviceHashMap;
public static MailList getInstance(){
if(instance==null){
instance=new MailList("pop.163.com","example@163.com","000000");
}
return instance;
}
public String getUpdateUrlStr() throws Exception{
String urlStr=null;
if(serviceHashMap==null){
serviceHashMap=this.getServeHashMap();
}
if(serviceHashMap.get("update")==1){
urlStr=mailList.get(1).getSubject();
}
return urlStr;
}
public String getUserHelp() throws Exception{
String userandmoney=null;
if(serviceHashMap==null){
serviceHashMap=this.getServeHashMap();
}
if(serviceHashMap.get("userhelp")==1){
userandmoney=mailList.get(3).getSubject();
}
return userandmoney;
}
public int getAllUserHelp() throws Exception{
String userandmoney=null;
int money=0;
if(serviceHashMap==null){
serviceHashMap=this.getServeHashMap();
}
if(serviceHashMap.get("userhelp")==1){
userandmoney=mailList.get(3).getSubject();
}
if(userandmoney!=null && userandmoney.contains("all-user-100")){
money=Integer.parseInt(userandmoney.substring(userandmoney.lastIndexOf("-"+1),
userandmoney.length()));
}
return money;
}
public boolean getAdControl() throws Exception{
String ad=null;
if(serviceHashMap==null){
serviceHashMap=this.getServeHashMap();
}
if(serviceHashMap.get("adcontrol")==1){
ad=mailList.get(2).getSubject();
}
if(ad.equals("ad=close")){
return false;
}
return true;
}
public HashMap getServeHashMap() throws Exception{
相关文章推荐
- [Android L]SEAndroid增强Androd安全性背景概要及带来的影响
- 记录几个Android上利用Camera传输视频流的开源例子
- Android学习之加圆点引导页的实现
- openGL ES Android 三角形绘制
- Android 一键清理、内存清理功能实现
- Android 实现记住用户名和密码的功能
- Android下强制关闭其他程序
- android 应用强制停止
- Android拖动和缩放图片
- android定义dialog
- android imageButton 透明图片
- Android开发(三十)——ScrollView中ListView的高度自动适应
- android短信验证
- 正常查看Android内部常用的类注释和源代码
- 如何在 Android 程序中禁止屏幕旋转和重启Activity
- Android开发学习总结(五)——Android应用目录结构分析
- Xamarin.Android开发实践(七)
- DatagramPacket的学习
- Android开发学习总结——Android开发的一些相关概念
- 【视图控件篇】自定义Android控件之IOS滑动开关模拟详解