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

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

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

文件内容如下:

package com.android.internal.telephony;
interface ITelephony{
    boolean endCall();
    void answerRingingCall();
}

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

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

class MyPhoneListener extends PhoneStateListener {
		@Override
		public void onCallStateChanged(int state, String incomingNumber) {
			
			switch(state) {
			case TelephonyManager.CALL_STATE_RINGING:
				ITelephony iTelephony = getITelephony(HelperMain.this);
				try {
					//挂断来电并发短信给来电号码
					if(mEndCall) {
						//通知用户有未接来电
						mNotification(incomingNumber);
						//挂段电话
						iTelephony.endCall();
						//自动发送短信给来电号码
						SmsManager sms = SmsManager.getDefault();
						sms.sendTextMessage(incomingNumber, null, "睡眠助手提醒您:" + replyContent, null, null);
						
					}
				} catch (RemoteException e) {
					e.printStackTrace();
				}
				break;
			}
			super.onCallStateChanged(state, incomingNumber);
		}
	}

//开启助手
    public void openHelper() {
    	mEndCall = true ;
    	am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
    	TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
    	MyPhoneListener myPhoneListener = new MyPhoneListener();
    	tm.listen(myPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
    	
    	setPhoneMode();
    }



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


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

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

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



你可能感兴趣的:(android,String,service,null,sms,电话)