要实现自动挂电话,要调用系统的挂电话。
在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(); }到这里就实现了自动挂电话的功能。