public class CallRecord01 extends Activity {
  1. 聽 聽 private Button beginrecordservice;
  2. 聽 聽 @Override
  3. 聽 聽 public void onCreate(Bundle savedInstanceState) {
  4. 聽 聽聽 聽聽聽super.onCreate(savedInstanceState);
  5. 聽 聽聽 聽聽聽setContentView(R.layout.main);
  6. 聽 聽聽 聽聽聽//
  7. 聽 聽聽 聽聽聽beginrecordservice=(Button)findViewById(R.id.startrecordservice);
  8. 聽 聽聽 聽聽聽beginrecordservice.setOnClickListener(new BeginRecord());
  9. 聽 聽 }
  10. 聽 聽 //
  11. 聽 聽 private class BeginRecord implements OnClickListener{

  12. 聽 聽 聽 聽 聽 聽 聽 聽 @Override
  13. 聽 聽 聽 聽 聽 聽 聽 聽 public void onClick(View v) {
  14. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Intent serviceIntent=new Intent(getApplicationContext(),CallRecordService.class);
  15. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 getApplicationContext().startService(serviceIntent);
  16. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽聽
  17. 聽 聽 聽 聽 聽 聽 聽 聽 }
  18. 聽 聽 聽 聽 聽 聽聽
  19. 聽 聽 }
  20. }
澶嶅埗浠g爜
  1. public class CallRecordService extends Service {
  2. 聽 聽 聽 聽聽
  3. 聽 聽 聽 聽 @Override
  4. 聽 聽 聽 聽 public IBinder onBind(Intent intent) {
  5. 聽 聽 聽 聽 聽 聽 聽 聽 // TODO Auto-generated method stub
  6. 聽 聽 聽 聽 聽 聽 聽 聽 return null;
  7. 聽 聽 聽 聽 }

  8. 聽 聽 聽 聽 @Override
  9. 聽 聽 聽 聽 public void onCreate() {
  10. 聽 聽 聽 聽 聽 聽 聽 聽 super.onCreate();
  11. 聽 聽 聽 聽 聽 聽 聽 聽 Toast.makeText(getApplicationContext(), "褰曢煶鏈嶅姟宸茬粡鍒涘缓!", Toast.LENGTH_LONG).show();
  12. 聽 聽 聽 聽 }

  13. 聽 聽 聽 聽 @Override
  14. 聽 聽 聽 聽 public void onDestroy() {
  15. 聽 聽 聽 聽 聽 聽 聽 聽 super.onDestroy();
  16. 聽 聽 聽 聽 聽 聽 聽 聽 Toast.makeText(getApplicationContext(), "褰曢煶鏈嶅姟宸茬粡閿€姣?", Toast.LENGTH_LONG).show();
  17. 聽 聽 聽 聽 }

  18. 聽 聽 聽 聽 @Override
  19. 聽 聽 聽 聽 public void onStart(Intent intent, int startId) {
  20. 聽 聽 聽 聽 聽 聽 聽 聽 super.onStart(intent, startId);
  21. 聽 聽 聽 聽 聽 聽 聽 聽 Toast.makeText(getApplicationContext(), "褰曢煶鏈嶅姟宸茬粡鍚姩!", Toast.LENGTH_LONG).show();
  22. 聽 聽 聽 聽 聽 聽 聽 聽 //
  23. 聽 聽 聽 聽 聽 聽 聽 聽 TelephonyManager telephonymanager=(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
  24. 聽 聽 聽 聽 聽 聽 聽 聽 telephonymanager.listen(new PhoneListener(getApplicationContext()), PhoneStateListener.LISTEN_CALL_STATE);
  25. 聽 聽 聽 聽 聽 聽 聽 聽聽
  26. 聽 聽 聽 聽 }

  27. }
澶嶅埗浠g爜
  1. public class PhoneListener extends PhoneStateListener {
  2. 聽 聽 聽 聽 File audioFile;
  3. 聽 聽 聽 聽 MediaRecorder mediaRecorder; //= new MediaRecorder();
  4. 聽 聽 聽 聽 Context c;
  5. 聽 聽 聽 聽 //
  6. 聽 聽 聽 聽 boolean iscall=false;
  7. 聽 聽 聽 聽 //
  8. 聽 聽 聽 聽 public PhoneListener(Context context){
  9. 聽 聽 聽 聽 聽 聽 聽 聽 c=context;
  10. 聽 聽 聽 聽 聽 聽 聽 聽 iscall=false;
  11. 聽 聽 聽 聽 }
  12. 聽 聽 聽 聽 @Override
  13. 聽 聽 聽 聽 public void onCallStateChanged(int state, String incomingNumber) {
  14. 聽 聽 聽 聽 聽 聽 聽 聽 super.onCallStateChanged(state, incomingNumber);
  15. 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder = new MediaRecorder();
  16. 聽 聽 聽 聽 聽 聽 聽 聽 switch(state){
  17. 聽 聽 聽 聽 聽 聽 聽 聽 case TelephonyManager.CALL_STATE_OFFHOOK:
  18. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 iscall=true;
  19. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 try {
  20. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 recordCallComment();
  21. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽聽
  22. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 } catch (IOException e) {
  23. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // TODO Auto-generated catch block
  24. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 e.printStackTrace();
  25. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.stop();
  26. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 }
  27. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Toast.makeText(c, "姝e湪褰曢煶", Toast.LENGTH_SHORT).show();
  28. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 break;
  29. 聽 聽 聽 聽 聽 聽 聽 聽 case TelephonyManager.CALL_STATE_IDLE:
  30. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //if(mediaRecorder!=null){
  31. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //mediaRecorder.stop();
  32. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //mediaRecorder=null;
  33. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //}
  34. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 if(iscall){
  35. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.stop();
  36. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 iscall=false;
  37. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 }
  38. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 break;
  39. 聽 聽 聽 聽 聽 聽 聽 聽 }
  40. 聽 聽 聽 聽 }
  41. 聽 聽 聽 聽 //
  42. 聽 聽 聽 聽 public void recordCallComment() throws IOException{
  43. 聽 聽 聽 聽 聽 聽 聽 聽 System.out.println(mediaRecorder);

  44. 聽 聽 聽 聽 聽 聽 聽 聽 //杩欓噷AudioSource.MIC鍙互鏀逛负AudioSource.VOICE_CALL, 鎶婇煶婧愬彉
  45. 聽 聽 聽 聽 聽 聽 聽 聽 //鐢佃瘽閫氳瘽鍐呭, 浣嗕技涔庡緢澶氭満閮戒笉鏀寔閫氳瘽褰曢煶
  46. 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
  47. 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder
  48. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 .setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
  49. 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder
  50. 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 .setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
  51. 聽 聽 聽 聽 聽 聽 聽 聽 audioFile = File.createTempFile("record_", ".amr");
  52. 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.setOutputFile(audioFile.getAbsolutePath());
  53. 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.prepare();
  54. 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.start();
  55. 聽 聽 聽 聽 }
  56. 聽 聽 聽 聽聽
  57. }
澶嶅埗浠g爜
From :聽 http://www.eoeandroid.com/thread-114871-1-1.html

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. 【备忘】Android模拟小球自由落体(Surface
  2. android GPS 获取卫星数量
  3. android 丢包率的计算
  4. android ant
  5. 用Android(安卓)写休闲拼图游戏(一)
  6. Android(安卓)通过Intent 传递对象
  7. woyong
  8. android 自带的日期控件 DatePicker
  9. Android(安卓)ps 指令
  10. Android_播放器的进度条