一、问题描述 使用BordercastReceiver和Service组件实现下述功能:1.当手机处于来电状态,启动监听服务,对来电进行监听录音。2.设置电话黑名单,当来电是黑名单电话,则直接挂断。 当拨打电话或电话状态发生改变时,系统就会发出有序广播,因此我们可以使用Bor ...
使用BordercastReceiver和Service组件实现下述功能:
1.当手机处于来电状态,启动监听服务,对来电进行监听录音。
2.设置电话黑名单,当来电是黑名单电话,则直接挂断。
当拨打电话或电话状态发生改变时,系统就会发出有序广播,因此我们可以使用BordercastReceiver接受广播,因BordercastReceiver执行时间短不能执行耗时任务也不能使用子线程,因此我们应启动一个Service来监听电话并进行处理
Android没有对外公开结束通话的API,要结束通话就必须使用AIDL与电话管理服务进行通信,并调用服务中的API实现结束通话,这样需要android 源码文件NeighboringCellInfo.aidl和ITelephony.aidl添加到项目中,如图所示:
Android Studio 会自动编译产生对应的类文件
public class TelReceiver extends BroadcastReceiver { public TelReceiver() { } @Override public void onReceive(Context context, Intent intent) { Intent i=new Intent(context,ListenPhoneService.class); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.setAction(intent.getAction()); i.putExtra(TelephonyManager.EXTRA_INCOMING_NUMBER, intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER));//电话号码 i.putExtra(TelephonyManager.EXTRA_STATE, intent.getStringExtra(TelephonyManager.EXTRA_STATE));//电话状态 context.startService(i);//启动服务 }}
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:Android四大组件应用系列——实现电话拦截和电话录音
关键词:Android
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。