Android电话录音文件
本人最近开发电话软件,大概是通过pc分发指令,实现电话拨打,挂机,录音文件上传功能,说起来是和简单,实际还是遇到很多问题,现在贴出来,与猿友一起共勉。
问题一:实现自动拨打电话,有人认为只能最多实现跳转到拨号界面,这是不可能的,现在跳转到拨号界面,并自动拨号的方式,前提要动态申请权限哦
/**
* 拨打电话(直接拨打电话
*
* @param context
* @param phoneNum 电话号码
*/
public void callPhone(Context context, String phoneNum) {
Intent intent = new Intent(Intent.ACTION_CALL);
Uri data = Uri.parse("tel:" + phoneNum);
intent.setData(data);
context.startActivity(intent);
}
问题二:自动挂断电话,这个东西由于Android系统设有安全权限,只能通过aidl拿到权限,新建aidl文件,此时要注意路径,
package com.android.internal.telephony;
/**
* Interface used to interact with the phone. Mostly this is used by the
* TelephonyManager class. A few places are still using this directly.
* Please clean them up if possible and use TelephonyManager instead.
* {@hide}
*/
interface ITelephony {
/**
* End call or go to the Home screen
* @return whether it hung up
*/
boolean endCall();
}
public void endCallnew() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException, RemoteException {
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
Class clazz = Class.forName(telephonyManager.getClass().getName());
Method method = clazz.getDeclaredMethod("getITelephony");
method.setAccessible(true);
ITelephony telephonyService = (ITelephony) method.invoke(telephonyManager);
telephonyService.endCall();
}
如果你这样写可能就是没有办法适配9.0,这个9.0适配也是找了很久,有个哥们说看到谷歌说是这样解决的。完整的解决方案应该是这样的
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)