Android 通话挂断实现
2014-09-08
导入AIDL文件
- 在src下新建包:com.android.internal.telephony 和 android.telephony
- 下载ITelephony.aidl 和 NeighboringCellInfo.aidl
- 拷贝
ITelephony.aidl
到com.android.internal.telephony
包下,拷贝NeighboringCellInfo.aidl
到android.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();
}
}