android编程实现电话录音的方法

 更新时间:2015年10月13日 11:55:00   作者:AlexZhuang  
这篇文章主要介绍了android编程实现电话录音的方法,涉及Android监听电话通话及音频采集的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了android编程实现电话录音的方法。分享给大家供大家参考。具体如下:

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

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<!-- 在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"/>

java代码如下:

public class PhoneListenerService extends Service {
@Override
public 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程序设计有所帮助。

相关文章

  • Kotlin基本数据类型详解

    Kotlin基本数据类型详解

    大家好,本篇文章主要讲的是Kotlin基本数据类型详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Android网格视图GridView的使用

    Android网格视图GridView的使用

    网格视图GridView的排列方式与矩阵类似,当屏幕上有很多元素(文字、图片或其他元素)需要按矩阵格式进行显示时,就可以使用GridView控件来实现
    2016-01-01
  • Android实现ImageView图片缩放和拖动

    Android实现ImageView图片缩放和拖动

    这篇文章主要为大家详细介绍了Android实现ImageView图片缩放和拖动的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android启动页解决方案(推荐)

    Android启动页解决方案(推荐)

    启动页几乎成为了每个app的标配,有些商家在启动页中增加了开屏广告以此带来更多的收入。目前启动页的广告都有倒计时的功能,那么我们在倒计时的过程中能做些什么呢?下面通过本文给大家详细介绍供大家参考
    2017-03-03
  • Android开发之使用SQLite存储数据的方法分析

    Android开发之使用SQLite存储数据的方法分析

    这篇文章主要介绍了Android开发之使用SQLite存储数据的方法,结合实例形式分析了Android使用SQLite数据库实现针对数据的增删改查操作相关技巧,需要的朋友可以参考下
    2017-07-07
  • adb通过wifi连接android设备流程解析

    adb通过wifi连接android设备流程解析

    这篇文章主要介绍了adb通过wifi连接android设备流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Android Studio 3.0 Gradle 配置变更

    Android Studio 3.0 Gradle 配置变更

    这篇文章主要介绍了Android Studio 3.0 Gradle 配置变更的相关知识,即多渠道打包变更和更改打包命名及路径的代码,感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-03-03
  • Android应用实现安装后自启动的方法

    Android应用实现安装后自启动的方法

    今天小编就为大家分享一篇Android应用实现安装后自启动的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Android 使用ViewPager自动滚动循环轮播效果

    Android 使用ViewPager自动滚动循环轮播效果

    本文主要给大家介绍viewpager自动播放,循环滚动的效果,对android viewpager滚动相关知识感兴趣的朋友可以参考下本篇文章
    2015-11-11
  • Android修改DatePicker字体颜色及分割线颜色详细介绍

    Android修改DatePicker字体颜色及分割线颜色详细介绍

    这篇文章主要介绍了Android修改DatePicker字体颜色及分割线颜色详细介绍的相关资料,需要的朋友可以参考下
    2017-05-05

最新评论