Android 通话挂断实现

2014-09-08

Android 通话挂断实现

2014-09-08

导入AIDL文件

  1. 在src下新建包:com.android.internal.telephony 和 android.telephony
  2. 下载ITelephony.aidlNeighboringCellInfo.aidl
  3. 拷贝ITelephony.aidlcom.android.internal.telephony包下,拷贝NeighboringCellInfo.aidlandroid.telephony包下

权限

<uses-permission android:name="android.permission.CALL_PHONE"/>;

实现

  private void endCall() {
    ITelephony iTelephony = null;
    TelephonyManager telMgr = (TelephonyManager)
            this.getSystemService(Service.TELEPHONY_SERVICE);
    Class<TelephonyManager> c = TelephonyManager.class;
    Method getITelephonyMethod = null;
    try {
        getITelephonyMethod = c.getDeclaredMethod("getITelephony", (Class[]) null);
        getITelephonyMethod.setAccessible(true);
    } catch (SecurityException e) {
        e.printStackTrace();
    } catch (NoSuchMethodException e) {
        e.printStackTrace();
    }
 
    try {
        iTelephony = (ITelephony)
                getITelephonyMethod.invoke(telMgr, (Object[]) null);
        iTelephony.endCall();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    }catch (Exception e){
        e.printStackTrace();
    }
 
}