android开发邮件客户端时,怎么检测邮件账户是否有未读邮件?,希望大家给点意见或者推荐一下参考资料也行。Android开发邮件
解决方案 »
- 弱弱的问一句,android 4.2.2的android:targetSdkVersion应该写17还是21呢?
- 发布一个游戏引擎《StroyToolKit》
- 学生做的android市场,和社区网站,请大家多多支持哈
- 免费Android在线图书推荐,希望对大家有帮助
- 在线等 :这样定义Radio为什么不正确
- 关于android2.3生成APK文件的问题???
- android editetextview 软键盘弹出后直接把我的输入框给隐藏了。
- 做一个阅读软件,页面显示需要用到什么控件?
- cocos2d-x安卓游戏开发.兄弟们介绍一款测试机吧.模拟器太慢,受不了.
- Android 应用如何模拟触屏点击动作???
- 安卓原生浏览器源代码 有错该如何解决?
- android上解析ppt等
下载地址
http://download.csdn.net/detail/wangxiangdong_sl/5267919
如果只是新邮件可以用IMAP或者POP3.
使用POP3需要客户端做定时轮询检查服务器是否有新邮件,如果用IMAP可以使用IMAP IDLE做Push,就是推送。
你还是先了解一下邮件相关协议吧
public class NewEmailContentObserver extends ContentObserver {
private Context mContext;
private boolean mIsUpdate = false;
public static int sTempEmailCount;
public static int sNewEmailCount;
private final static int UPDATE_START = 0x1000;
private final static int DELAY_TIME = 10000;
public NewEmailContentObserver(Context context, Handler handler) {
super(handler);
mContext = (Launcher)context;
} @Override
public boolean deliverSelfNotifications() {
return super.deliverSelfNotifications();
} @Override
public void onChange(boolean selfChange) {
mUpdate.removeMessages(UPDATE_START);
mUpdate.sendEmptyMessageDelayed(UPDATE_START, DELAY_TIME);
if ((mContext.getWorkspace() != null) && mContext.getWorkspace().mIsDragOccuring) {
mIsUpdate = true;
} } private final Handler mUpdate = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case UPDATE_START:
sNewEmailCount = Utilities.getNewEmailCount(mContext);
if (sNewEmailCount != sTempEmailCount) {
new Thread(new Runnable() {
public void run() {
sTempEmailCount = sNewEmailCount;
if ((mContext.getWorkspace() != null) && mContext.getWorkspace().mIsDragOccuring) {
mIsUpdate = true;
} else {
mIsUpdate = false;
mContext.updateNewEmail();
}
}
}).start();
}
break;
default:
break;
}
}
};
public boolean getIsUpdate() {
return mIsUpdate;
}
public void setIsUpdate(boolean isUpdate) {
mIsUpdate = isUpdate;
}
}
public static int getNewEmailCount(Context context) {
int nNewEmail = 0;
Cursor cur = null;
try {
cur = context.getContentResolver().query(Uri.parse("content://com.android.email.provider/mailbox"),
new String[] {"sum(unreadCount)"},"type =?", new String[] {"0"}, null);
if (cur != null) {
cur.moveToFirst();
if (cur.getString(0) != null) {
nNewEmail = Integer.valueOf(cur.getString(0));
}
}
} catch (Exception ex) {
Log.d(TAG, "getNewEmailCount: " + ex);
}
finally {
if (cur != null) {
cur.close();
}
}
return nNewEmail;
}
* 【判断此邮件是否已读,如果未读返回返回false,反之返回true】
*/
public boolean isNew(){
boolean isnew = false;
try {
Flags flags = ((Message) mimeMessage).getFlags();
Flags.Flag[] flag = flags.getSystemFlags();
System.out.println("flags's length: " + flag.length);
for (int i = 0; i < flag.length; i++) {
if (flag[i] == Flags.Flag.SEEN) {
isnew = true;
System.out.println("seen Message.......");
break;
}
}
return isnew;
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return isnew;
}