android 之service实现电话监听并录音

  次阅读 来源:互联网(转载协议) 2016-01-14 09:11 我要评论(0)

要实现电话监听,需要监听电话的状态,方法如下.

ListenReceiver类:收到电话广播时开启监听电话的服务

public class ListenReceiver extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {

context.startService(new Intent(context,ListenService.class));//收到广播时开启监听电话的服务

}

}

ListenService类: 监听电话呼叫的状态,并在对应的状态进行响应的处理:

public class ListenService extends Service {

public IBinder onBind(Intent intent) {

return null;

}

public void onCreate() {

System.out.println("开始监听电话服务状态");

//获得电话管理器

TelephonyManager manager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);

//为管理器设置监听器,监听电话的呼叫状态

manager.listen(new MyPhoneListener(), PhoneStateListener.LISTEN_CALL_STATE);

}

private class MyPhoneListener extendsPhoneStateListener{

private String num;//记录来电号码

private MediaRecorder mRecorder;

public void onCallStateChanged(int state, String incomingNumber) {

switch (state) {

case TelephonyManager.CALL_STATE_RINGING://来电振动

num = incomingNumber;

break;

case TelephonyManager.CALL_STATE_OFFHOOK:// 当接通电话开始通话时可以进行录音

mRecorder = new MediaRecorder();

mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);//此处只实现了录本地MIC输入的声音, 若想录入对立通话者的声音

mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

mRecorder.setOutputFile("/mnt/sdcard/"+num+"_"+System.currentTimeMillis()+".3gp");

mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

try {

mRecorder.prepare();

} catch (Exception e) {

e.printStackTrace();

}

mRecorder.start();

break;

case TelephonyManager.CALL_STATE_IDLE://挂断电话时停止录音

if(mRecorder!=null){

mRecorder.stop(); //停止

mRecorder.release();//释放

mRecorder=null;//垃圾回收

}

break;

}

}

}

}

//监听电话的状态

telManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);

在清单文件AndroidManifest.xml中添加权限:

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

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 2018深圳国际人工智能展览会 2018 shenzhen International Artif

    2018深圳国际人工智能展览会 2018 shenzhen International Artif

  • Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

    Oculus公布原型机,大幅度提升可视角,能实现140°的视场水平

  • Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

    Michael I. Jordan带你解读百万奖金ATEC蚂蚁人工智能大赛

  • teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

    teamLab创始人猪子寿之: 抛去衣食住行,我还剩下什么?

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...