在工程目录下创那一个路径为:com.oid.internal.telephony.ITelephony.java的接口文件

ITelephony.java内空

 
  1. package oid.internal.telephony; 
  2.  
  3. interface ITelephony { 
  4.     boolean endCall(); 
  5.  
  6.     void answerRingingCall(); 

创建好后,系统会自动在R文件夹内映射出该文件

在到需要完成接听和挂断电话的类中添加getITelephony()方法,获得一个ITelephony对象

 
  1. private static ITelephony getITelephony(Context context) { 
  2.         TelephonyManager mTelephonyManager = (TelephonyManager) context 
  3.                 .getSystemService(TELEPHONY_SERVICE); 
  4.         Class<TelephonyManager> c = TelephonyManager.class; 
  5.         Method getITelephonyMethod = null
  6.         ITelephony iTelephony = null
  7.         try { 
  8.             getITelephonyMethod = c.getDeclaredMethod("getITelephony", 
  9.                     (Class[]) null);
  10.             getITelephonyMethod.setAccessible(true); 
  11.         } catch (SecurityException e) { 
  12.             e.printStackTrace(); 
  13.         } catch (NoSuchMethodException e) { 
  14.             e.printStackTrace(); 
  15.         } 
  16.  
  17.         try { 
  18.             iTelephony = (ITelephony) getITelephonyMethod.invoke( 
  19.                     mTelephonyManager, (Object[]) null);
  20.             return iTelephony; 
  21.         } catch (Exception e) { 
  22.             e.printStackTrace(); 
  23.         } 
  24.         return iTelephony; 
  25.     } 

最后呢,如果需要接听电话就getITelephony(this).answerRingingCall();

如果挂断电话就getITelephony(this).endCall();