`
KevinDan
  • 浏览: 6111 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

android电话录音

阅读更多
1.写一个监听来电消息的服务类, 监听电话、录音、保存录音结果
 
import java.io.File;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.MediaRecorder;
import android.os.Environment;
import android.os.IBinder;
import android.os.Vibrator;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.Toast;

public class PhoneService extends Service{
	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		return null;
	}

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();

        TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
        telephonyManager.listen(new PhoneListener(), PhoneStateListener.LISTEN_CALL_STATE);
    }
    
    private final class PhoneListener extends PhoneStateListener{
        private MediaRecorder mediaRecorder;
        private File file;
        private Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);

        @Override
        public void onCallStateChanged(int state, String incomingNumber) {
            try {
                switch (state){
                case TelephonyManager.CALL_STATE_RINGING: //来电
                    Toast.makeText(getApplicationContext(), "来电", Toast.LENGTH_SHORT).show();
                    break;
                    
                case TelephonyManager.CALL_STATE_OFFHOOK: //接通电话
                    file = new File(Environment.getExternalStorageDirectory(), incomingNumber + System.currentTimeMillis() + ".3gp");
                    mediaRecorder = new MediaRecorder();
                    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
                    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
                    mediaRecorder.setOutputFile(file.getAbsolutePath());
                    mediaRecorder.prepare();
                    mediaRecorder.start();
                    Toast.makeText(getApplicationContext(), "电话已接通,开始录音。", Toast.LENGTH_SHORT).show();        
                    //震动一下
                    vibrator.vibrate(200);
                    break;
                    
                case TelephonyManager.CALL_STATE_IDLE: //挂断电话
                    if (mediaRecorder != null){
                        mediaRecorder.stop();
                        mediaRecorder.release();
                        mediaRecorder = null;
                        Toast.makeText(getApplicationContext(), "电话已挂断,录音停止。", Toast.LENGTH_SHORT).show();
                        //震动一下
                        vibrator.vibrate(200);
                    }
                    break;
                }
            }catch (Exception e) {
                e.printStackTrace();
            }
        }        
    }
}


2.在manifest里面设置权限
 
<!-- 读取电话状态权限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <!-- SD卡读写权限 -->
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <!-- 录音权限 -->
    <uses-permission android:name="android.permission.RECORD_AUDIO"/> 
    <!-- 震动权限 -->
    <uses-permission android:name="android.permission.VIBRATE"/>


3.开启监听服务
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

public class XNMainActivity extends Activity{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		Intent tmpIntent = new Intent(this, PhoneService.class);
        startService(tmpIntent);
        finish();
	}
}
分享到:
评论

相关推荐

    android电话录音源代码

    在“android电话录音源代码”中,我们主要关注以下几个关键知识点: 1. **权限申请**: 在Android中,录音功能需要申请`RECORD_AUDIO`权限。在Android 6.0(API级别23)及以上版本,应用需要在运行时请求此权限,...

    android电话录音软件源码

    "android电话录音软件源码" 提供了一种实现这一功能的解决方案,允许用户在通话过程中录制声音,并将录音文件存储在本地或者上传至远程服务器。 首先,我们来看一下核心知识点: 1. **权限管理**:在Android系统中...

    android 电话录音机程序

    在Android平台上,开发一个电话录音机程序涉及到多个关键知识点,包括权限管理...通过以上技术,你可以构建一个功能完备的Android电话录音机程序。在开发过程中,注意遵循最佳实践,优化性能,同时确保用户隐私和安全。

    android 电话录音源码

    这里我们主要探讨的是一款简单的Android电话录音软件的源码,这将涉及到以下几个关键知识点: 1. **权限管理**:在Android中,录音功能需要获取`RECORD_AUDIO`权限。在Android 6.0及以上版本,还需要在运行时请求...

    关于android电话录音问题的详细分析.doc

    本文将深入探讨Android电话录音的问题,并详细分析其背后的技术原理。 首先,让我们了解一下Android录音的基本流程。在Android中,录音操作通常通过`MediaRecorder`类来实现。在创建`MediaRecorder`实例后,我们...

    关于android电话录音问题的详细分析.pdf

    关于android电话录音问题的详细分析.pdf

    android实现通话录音功能

    在Android平台上实现通话录音功能是一项技术挑战,但也是许多应用程序开发者需要掌握的关键技能。这篇文章将深入探讨如何在Android系统中实现实时通话录音,并提供相关的源码参考。 首先,了解Android权限管理至关...

    Android 实现电话来去自动录音的功能

    在实现电话录音功能时,务必确保用户已授予录音权限(`Manifest.permission.RECORD_AUDIO`),并且在 Android 6.0 及以上版本需要在运行时请求权限。此外,某些设备可能不允许应用在后台录音,所以最好在用户知情的...

    android_service_电话录音

    在Android平台上,`Service`组件是开发者用于实现长时间运行任务的核心工具,比如在后台执行音频录制,例如电话录音。在本项目"android_service_电话录音"中,开发者利用了`Service`来实现在通话过程中录制音频,这...

    Android录音程序源码.zip

    在Android平台上开发录音应用程序是一项常见的任务,涉及到多媒体处理和设备硬件的交互。下面将详细解析“Android录音程序源码”的核心知识点。 1. **MediaRecorder类**:Android系统提供了`MediaRecorder`类来处理...

    Android SIP软电话,通话录音,VoIP电话,linphone电话

    项目中实现了两种通话录音, 调用系统的拨号功能,检测...方式二:SIP软电话,集成linphone框架的VoIP网络电话,实现网络通话并录音, 项目详解连接:https://blog.csdn.net/m13984458297/article/details/127534688

    基于Android平台下的通话录音软件,帮助用户轻松实现通话录音和留言录音

    在Android平台上开发通话录音软件是一项常见的移动应用开发任务,这类软件能够帮助用户记录他们的电话对话和语音留言,确保重要信息的留存和回顾。为了实现这一功能,开发者通常需要利用Android提供的API和权限管理...

    Android 通话双向录音

    在Android平台上实现通话双向录音是一项技术挑战,因为涉及到系统权限、音频流的处理以及与通话服务的交互。本文将深入探讨如何在Android设备上实现这一功能,并提供相关的知识点。 首先,我们要了解Android的权限...

    安卓通话录音源码

    综上所述,【安卓通话录音源码】是一个涵盖了Android权限管理、电话状态监听、音频录制、文件操作和异常处理等多个核心概念的项目,对于希望深入理解Android通话录音机制的开发者来说,这是一个很好的学习材料。...

    android录音-上传-下载-对话框(含服务器端)

    工程编码:GBK 调通需要设置 RecordDialog类中的参数--- 服务器上传地址 uploadServerUrl ...RecordDialog 录音对话框 RecordManger 录音功能类 TalkNetManager 网络会话对话框 UploadUtil 文件上传工具类

    android电话、短信黑白名单拦截、电话录音

    在Android平台上,开发电话和...综上所述,实现"android电话、短信黑白名单拦截、电话录音"涉及多个Android核心组件和API的使用。理解并熟练掌握这些知识点,将使你能够开发出高效且用户体验良好的电话和短信管理应用。

    android实现通话录音

    在Android平台上实现通话录音是一项...综上所述,实现Android通话录音涉及了`AudioRecord`的使用、权限管理、电话状态监听、文件操作以及播放录音等多个方面,需要开发者具备扎实的Android开发基础和良好的编程实践。

    android 暂停录音,继续录音

    在标题"android 暂停录音,继续录音"中提到的功能,实际上涉及到的是对`MediaRecorder`的暂停和恢复操作,这在某些特定的应用场景中非常有用,比如电话中断、用户交互或者节省电池等。接下来,我们将详细探讨如何在...

    Android例子源码接打电话录音小例子

    以上是基于Android开发接打电话录音应用的基本技术要点。在实际开发中,还需要考虑用户体验、错误处理、资源释放等问题,以确保应用的稳定性和效率。通过深入理解这些知识点,开发者可以构建出满足需求的高质量应用...

Global site tag (gtag.js) - Google Analytics