android电话录音
16lz
2021-12-04
在清单文件AndroidManifest.xml中添加权限:
<!-- 在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- 往SDCard写入数据权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.RECORD_AUDIO"/><!-- 访问internet权限 --><uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
2. 具体实现代码:public class PhoneListenerService extends Service {@Overridepublic void onCreate() { TelephonyManager manager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);//监听电话的状态manager.listen(new MyListener(), PhoneStateListener.LISTEN_CALL_STATE);}private final class MyListener extends PhoneStateListener {private String num;private MediaRecorder recorder;public void onCallStateChanged(int state, String incomingNumber) {switch (state) {case TelephonyManager.CALL_STATE_RINGING: /* 电话进来时 */num = incomingNumber;break;case TelephonyManager.CALL_STATE_OFFHOOK: /* 接起电话时 */try {File file = new File(Environment.getExternalStorageDirectory(), num + "_" + System.currentTimeMillis() + ".3gp");recorder = new MediaRecorder();recorder.setAudioSource(AudioSource.MIC);//声音采集来源(话筒)recorder.setOutputFormat(OutputFormat.THREE_GPP);//输出的格式recorder.setAudioEncoder(AudioEncoder.AMR_NB);//音频编码方式recorder.setOutputFile(file.getAbsolutePath());//输出方向recorder.prepare();recorder.start();} catch (Exception e) {e.printStackTrace();}break;case TelephonyManager.CALL_STATE_IDLE: /* 无任何状态时 */if (recorder != null) {recorder.stop();recorder.release();}break;}}}}
更多相关文章
- android 开机启动服务
- Android(安卓)Io 整理
- android中IO操作数据总结
- Android(安卓)设置桌面背景
- Android中通过代码检测系统是否有root权限
- Android的NDK开发(5)————Android(安卓)JNI层实现文件的read
- android 判断联网类型
- Android广播接实现电话的监听(电话的状态,拦截)
- android取得账户(邮件地址)