45.android服务service-电话录音机
2017-02-11 00:03
288 查看
电话的状态:
挂断电话
来电状态
接通电话状态
用到的函数:
TelephonyManager manager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);//获得电话管理器
manager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);//对呼叫状态进行监听
private PhoneStateListener listener = new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String incomingNumber) {//当状态改变时调用
super.onCallStateChanged(state, incomingNumber);
switch(state){
case TelephonyManager.CALL_STATE_RINGING://来电
//处理代码
break;
case TelephonyManager.CALL_STATE_IDLE://挂断电话
//处理代码
break;
case TelephonyManager.CALL_STATE_OFFHOOK://接通电话状态
//处理代码
break;
}
}
};
录音的核心代码
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置输入流设备为麦克风
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//设置输出格式
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//设置编码方式
recorder.setOutputFile(filename); //设置输出文件
recorder.prepare();//准备
recorder.start();//开始录制
recorder.stop();//停止录制
recorder.release(); //释放资源
权限配置
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>清单文件配置
<service android:name="com.ldw.record.recorderService"></service>activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="启动录音服务" android:onClick="click" /> </RelativeLayout>MainActivity.java
package com.ldw.record; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View v){ Intent intent = new Intent(this, recorderService.class); startService(intent); } }recorderService.java
package com.ldw.record; import android.app.Service; import android.content.Context; import android.content.Intent; import android.media.MediaRecorder; import android.os.IBinder; import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; public class recorderService extends Service { private MediaRecorder recorder; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } //服务创建的额时候被调用 @Override public void onCr 4000 eate(){ super.onCreate(); //获得电话管理器 TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); //对呼叫状态进行监听,第二个参数决定监听的内容 tm.listen(new MyListener(), PhoneStateListener.LISTEN_CALL_STATE); } class MyListener extends PhoneStateListener{ //一旦电话的状态改变次方法调用 @Override public void onCallStateChanged(int state, String incomingNumber) { //当状态改变时调用 super.onCallStateChanged(state, incomingNumber); switch(state){ case TelephonyManager.CALL_STATE_IDLE: //空闲 System.out.println("空闲"); if(recorder != null){ recorder.stop(); recorder.release(); recorder = null; } break; case TelephonyManager.CALL_STATE_RINGING: //来电 //初始化录音 System.out.println("来电"); recorder = new MediaRecorder(); recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置输入流设备为麦克风 recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); //设置输出格式 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置编码方式 recorder.setOutputFile("sdcard/luyin.3gp"); //设置输出文件 try { recorder.prepare(); } catch (Exception e) { e.printStackTrace(); } recorder.start(); break; case TelephonyManager.CALL_STATE_OFFHOOK: //接通电话状态 //开始录音 System.out.println("接通电话状态"); break; } } } }
相关文章推荐
- Android之service---利用服务实现电话监听
- Android服务Service----实现电话监听录音
- Android--service服务--MediaRecorder--电话录音
- Android -- service 服务的创建与使用,生命周期,电话监控器
- Android之服务Service---电话监听
- Android Service 手机启动服务 监听电话的状态 进行录音
- Android-Service(系统服务实例:定位,网络判断,电话服务 ,通知栏通知等)
- Android-Service(系统服务实例:定位,网络判断,电话服务 ,通知栏通知等)
- android服务Service----实现电话监听录音
- Android -- service 服务的创建与使用,生命周期,电话监控器
- Android之服务Service---电话监听
- android服务Service----实现电话监听录音
- Android小项目之--服务【Service】
- 系出名门Android(4) - 活动(Activity), 服务(Service), 广播(Broadcast), 广播接收器(BroadcastReceiver)
- android 使用服务来窃听电话,并且通过语音录制
- android之service实例电话监听器
- Android 手机应用开发经验 之电话与短信服务
- Android Service学习之本地服务
- Android Service学习之AIDL, Parcelable和远程服务