Android应用-->睡眠助手实现挂电话和回复短信的功能


要实现自动挂电话,要调用系统的挂电话。

在src文件夹下创建包com.Android.internal.telephony,在包下建一个文件ITelephony.aidl

文件内容如下:

  1. package com.android.internal.telephony;  
  2. interface ITelephony{  
  3.     boolean endCall();  
  4.     void answerRingingCall();  
  5. }  

点保存之后就会在gen目录下自动生成一个ITelephony.java文件。

可以通过调用endCall()方法来实现挂电话的功能。

  1. class MyPhoneListener extends PhoneStateListener {  
  2.         @Override  
  3.         public void onCallStateChanged(int state, String incomingNumber) {  
  4.               
  5.             switch(state) {  
  6.             case TelephonyManager.CALL_STATE_RINGING:  
  7.                 ITelephony iTelephony = getITelephony(HelperMain.this);  
  8.                 try {  
  9.                     //挂断来电并发短信给来电号码   
  10.                     if(mEndCall) {  
  11.                         //通知用户有未接来电www.bkjia.com   
  12.                         mNotification(incomingNumber);  
  13.                         //挂段电话   
  14.                         iTelephony.endCall();  
  15.                         //自动发送短信给来电号码   
  16.                         SmsManager sms = SmsManager.getDefault();  
  17.                         sms.sendTextMessage(incomingNumber, null"睡眠助手提醒您:" + replyContent, nullnull);  
  18.                           
  19.                     }  
  20.                 } catch (RemoteException e) {  
  21.                     e.printStackTrace();  
  22.                 }  
  23.                 break;  
  24.             }  
  25.             super.onCallStateChanged(state, incomingNumber);  
  26.         }  
  27.     }  
  1. //开启助手   
  2.     public void openHelper() {  
  3.         mEndCall = true ;  
  4.         am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);  
  5.         TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);  
  6.         MyPhoneListener myPhoneListener = new MyPhoneListener();  
  7.         tm.listen(myPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);  
  8.           
  9.         setPhoneMode();  
  10.     }  

到这里就实现了自动挂电话的功能。

接下来是实现挂电话之后发送给来电号码一条短信,告之对方记住正在睡觉。

  1. //自动发送短信给来电号码   
  2.                         SmsManager sms = SmsManager.getDefault();  
  3.                         sms.sendTextMessage(incomingNumber, null"睡眠助手提醒您:" + replyContent, nullnull);  

到这里就实现了回复短信的功能。

相关内容