**Android挂断电话**
在项目中有一个功能,需要限时挂断电话,所以需要Android设备自动挂断电话。
需要两个 fromwork层的AIDL文件,如图:
![项目结构目录](https://img-blog.csdn.net/20170430231003730?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1eXVfNjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
图片中文件的位置和路径必须一致。
public static ITelephony getITelephony(TelephonyManager telephonyManager)
{
// mMTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
//TelephonyManager mTelephonyManager = (TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE);
Class<TelephonyManager> c = TelephonyManager.class;
Method getITelephonyMethod = null;
Log.d("aaa", "getITelephony: ");
try
{
getITelephonyMethod = c.getDeclaredMethod("getITelephony",(Class[]) null); // 获取声明的方法
getITelephonyMethod.setAccessible(true);
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
ITelephony iTelephony=null;
try {
iTelephony = (ITelephony) getITelephonyMethod.invoke(telephonyManager, (Object[]) null); // 获取实例
return iTelephony;
} catch (Exception e) {
e.printStackTrace();
Log.d("aaa", "getITelephony:===null ");
}
return iTelephony;
}
最后直接调用mITelephony.endCall();
由于项目中还涉及到自动接听电话,目前知道的接听方法有:
1.通过发送广播使设备接电话.
2.通过串口发送指令(DTMF).