Android中使用Service实现后台发送邮件功能实例
程序员文章站
2024-02-14 10:11:58
本文实例讲述了android中使用service实现后台发送邮件功能。分享给大家供大家参考,具体如下:
程序如下:
import android.app.act...
本文实例讲述了android中使用service实现后台发送邮件功能。分享给大家供大家参考,具体如下:
程序如下:
import android.app.activity; import android.content.intent; import android.content.res.resources.notfoundexception; import android.os.bundle; import android.widget.textview; public class a05activity extends activity { private textview tv; private string[] receiver; private string subject; private string body; /** called when the activity is first created. */ @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); tv=(textview)findviewbyid(r.id.tv); tv.settext("等待接收邮件中···"); try { //取得短信传来的bundle bundle b=this.getintent().getextras(); if(b!=null){ //将bundle中的字符串取出 string s=b.getstring("input"); receiver=new string[]{"1650967185@163.com"}; subject="邮箱发送"; body=s.tostring(); //自定义一个intent业执行发送e-mail的工作 intent i=new intent(android.content.intent.action_send); i.settype("plain/text");//设置邮件格式为“plain/text” i.putextra(android.content.intent.extra_email,receiver);//传入收件人地址 i.putextra(android.content.intent.extra_subject, subject);//传入邮件主题 i.putextra(android.content.intent.extra_text, body);//传入邮件内容 startactivity(intent.createchooser(i, getresources().getstring(r.string.message))); } else{ finish(); } } catch (notfoundexception e) { // todo auto-generated catch block e.printstacktrace(); } } }
import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.os.bundle; import android.telephony.gsm.smsmessage;//用来收取短信 import android.widget.toast;//告知用户收到短信 @suppresswarnings("deprecation") public class servicea05 extends broadcastreceiver{ public static final string maction="android.provider.telephony.sms_received"; private string str_receiver="收到短信"; @override public void onreceive(context arg0, intent arg1) { // todo auto-generated method stub toast.maketext(arg0, str_receiver.tostring(), toast.length_long).show(); if(arg1.getaction().equals(maction)){ //建构一字符串集合变量sb stringbuilder sb=new stringbuilder(); //接收数据 bundle b=arg1.getextras(); //判断intent传送数据是否为空 if(b!=null){ //pdus为android内置的短信参数indentifier /* * 通过bundle.get("")返回一个包含pdus的对象*/ object[] myobjpuds=(object[])b.get("pdus"); //构造短信对象数组,并根据短信内容大小来确定数组的大小 smsmessage[] sm=new smsmessage[myobjpuds.length]; for(int i=0;i<myobjpuds.length;i++){ sm[i]=smsmessage.createfrompdu((byte[])myobjpuds[i]); } //将短信合并自定义信息于stringbuilder当中 for(smsmessage sm01:sm){ sb.append("接收到来自:\n"); //收信人的电话号码 sb.append(sm01.getdisplayoriginatingaddress()); sb.append("\n--------传来的短信---------\n"); //取得传来短信的内容 sb.append(sm01.getdisplaymessagebody()); //用toast来显示来电信息 toast.maketext(arg0, sb.tostring(), toast.length_long).show(); } } toast.maketext(arg0, sb.tostring(), toast.length_long).show(); //返回主activity intent i=new intent(arg0,a05activity.class); //定义一个bundle bundle b01=new bundle(); //将短信以putstring()方法存入bundle中 b01.putstring("input", sb.tostring()); //将bundle放入intent中 i.putextras(b01); //设置intent的flag以一个全新的task来运行 i.setflags(intent.flag_activity_new_task); arg0.startactivity(i); } } }
androidmanifest.xml如下:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.my.a05" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".a05activity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <receiver android:name="servicea05"> <intent-filter> <action android:name="android.provider.telephony.sms_received"/> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.receive_sms"/> </manifest>
在android中注册一个broadcastreceiver,并设置这个receiver的intent-filter(android.provider.telephony.sms_received),让它针对短信事件做出反应。并且还要添加一个权限:android.permission.receive_sms。
更多关于android相关内容感兴趣的读者可查看本站专题:《android控件用法总结》及《android开发入门与进阶教程》
希望本文所述对大家android程序设计有所帮助。
上一篇: 对顶堆 随笔