public class CallRecord01 extends Activity {- 聽 聽 private Button beginrecordservice;
- 聽 聽 @Override
- 聽 聽 public void onCreate(Bundle savedInstanceState) {
- 聽 聽聽 聽聽聽super.onCreate(savedInstanceState);
- 聽 聽聽 聽聽聽setContentView(R.layout.main);
- 聽 聽聽 聽聽聽//
- 聽 聽聽 聽聽聽beginrecordservice=(Button)findViewById(R.id.startrecordservice);
- 聽 聽聽 聽聽聽beginrecordservice.setOnClickListener(new BeginRecord());
- 聽 聽 }
- 聽 聽 //
- 聽 聽 private class BeginRecord implements OnClickListener{
-
- 聽 聽 聽 聽 聽 聽 聽 聽 @Override
- 聽 聽 聽 聽 聽 聽 聽 聽 public void onClick(View v) {
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Intent serviceIntent=new Intent(getApplicationContext(),CallRecordService.class);
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 getApplicationContext().startService(serviceIntent);
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽聽
- 聽 聽 聽 聽 聽 聽 聽 聽 }
- 聽 聽 聽 聽 聽 聽聽
- 聽 聽 }
- }
澶嶅埗浠g爜- public class CallRecordService extends Service {
- 聽 聽 聽 聽聽
- 聽 聽 聽 聽 @Override
- 聽 聽 聽 聽 public IBinder onBind(Intent intent) {
- 聽 聽 聽 聽 聽 聽 聽 聽 // TODO Auto-generated method stub
- 聽 聽 聽 聽 聽 聽 聽 聽 return null;
- 聽 聽 聽 聽 }
-
- 聽 聽 聽 聽 @Override
- 聽 聽 聽 聽 public void onCreate() {
- 聽 聽 聽 聽 聽 聽 聽 聽 super.onCreate();
- 聽 聽 聽 聽 聽 聽 聽 聽 Toast.makeText(getApplicationContext(), "褰曢煶鏈嶅姟宸茬粡鍒涘缓!", Toast.LENGTH_LONG).show();
- 聽 聽 聽 聽 }
-
- 聽 聽 聽 聽 @Override
- 聽 聽 聽 聽 public void onDestroy() {
- 聽 聽 聽 聽 聽 聽 聽 聽 super.onDestroy();
- 聽 聽 聽 聽 聽 聽 聽 聽 Toast.makeText(getApplicationContext(), "褰曢煶鏈嶅姟宸茬粡閿€姣?", Toast.LENGTH_LONG).show();
- 聽 聽 聽 聽 }
-
- 聽 聽 聽 聽 @Override
- 聽 聽 聽 聽 public void onStart(Intent intent, int startId) {
- 聽 聽 聽 聽 聽 聽 聽 聽 super.onStart(intent, startId);
- 聽 聽 聽 聽 聽 聽 聽 聽 Toast.makeText(getApplicationContext(), "褰曢煶鏈嶅姟宸茬粡鍚姩!", Toast.LENGTH_LONG).show();
- 聽 聽 聽 聽 聽 聽 聽 聽 //
- 聽 聽 聽 聽 聽 聽 聽 聽 TelephonyManager telephonymanager=(TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
- 聽 聽 聽 聽 聽 聽 聽 聽 telephonymanager.listen(new PhoneListener(getApplicationContext()), PhoneStateListener.LISTEN_CALL_STATE);
- 聽 聽 聽 聽 聽 聽 聽 聽聽
- 聽 聽 聽 聽 }
-
- }
澶嶅埗浠g爜- public class PhoneListener extends PhoneStateListener {
- 聽 聽 聽 聽 File audioFile;
- 聽 聽 聽 聽 MediaRecorder mediaRecorder; //= new MediaRecorder();
- 聽 聽 聽 聽 Context c;
- 聽 聽 聽 聽 //
- 聽 聽 聽 聽 boolean iscall=false;
- 聽 聽 聽 聽 //
- 聽 聽 聽 聽 public PhoneListener(Context context){
- 聽 聽 聽 聽 聽 聽 聽 聽 c=context;
- 聽 聽 聽 聽 聽 聽 聽 聽 iscall=false;
- 聽 聽 聽 聽 }
- 聽 聽 聽 聽 @Override
- 聽 聽 聽 聽 public void onCallStateChanged(int state, String incomingNumber) {
- 聽 聽 聽 聽 聽 聽 聽 聽 super.onCallStateChanged(state, incomingNumber);
- 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder = new MediaRecorder();
- 聽 聽 聽 聽 聽 聽 聽 聽 switch(state){
- 聽 聽 聽 聽 聽 聽 聽 聽 case TelephonyManager.CALL_STATE_OFFHOOK:
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 iscall=true;
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 try {
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 recordCallComment();
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽聽
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 } catch (IOException e) {
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 // TODO Auto-generated catch block
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 e.printStackTrace();
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.stop();
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 }
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 Toast.makeText(c, "姝e湪褰曢煶", Toast.LENGTH_SHORT).show();
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 break;
- 聽 聽 聽 聽 聽 聽 聽 聽 case TelephonyManager.CALL_STATE_IDLE:
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //if(mediaRecorder!=null){
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //mediaRecorder.stop();
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //mediaRecorder=null;
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 //}
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 if(iscall){
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.stop();
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 iscall=false;
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 }
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 break;
- 聽 聽 聽 聽 聽 聽 聽 聽 }
- 聽 聽 聽 聽 }
- 聽 聽 聽 聽 //
- 聽 聽 聽 聽 public void recordCallComment() throws IOException{
- 聽 聽 聽 聽 聽 聽 聽 聽 System.out.println(mediaRecorder);
-
- 聽 聽 聽 聽 聽 聽 聽 聽 //杩欓噷AudioSource.MIC鍙互鏀逛负AudioSource.VOICE_CALL, 鎶婇煶婧愬彉
- 聽 聽 聽 聽 聽 聽 聽 聽 //鐢佃瘽閫氳瘽鍐呭, 浣嗕技涔庡緢澶氭満閮戒笉鏀寔閫氳瘽褰曢煶
- 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
- 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 .setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
- 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder
- 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 .setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
- 聽 聽 聽 聽 聽 聽 聽 聽 audioFile = File.createTempFile("record_", ".amr");
- 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.setOutputFile(audioFile.getAbsolutePath());
- 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.prepare();
- 聽 聽 聽 聽 聽 聽 聽 聽 mediaRecorder.start();
- 聽 聽 聽 聽 }
- 聽 聽 聽 聽聽
- }
澶嶅埗浠g爜 |
From :聽 http://www.eoeandroid.com/thread-114871-1-1.html
- 代码中设置drawableleft
- android 3.0 隐藏 系统标题栏
- Android开发中activity切换动画的实现
- Android(安卓)学习 笔记_05. 文件下载
- Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
- 技术博客汇总
- android 2.3 wifi (一)
- AndRoid Notification的清空和修改
- Android中的Chronometer
随机推荐
-
【备忘】Android模拟小球自由落体(Surface
-
android GPS 获取卫星数量
-
android 丢包率的计算
-
android ant
-
用Android(安卓)写休闲拼图游戏(一)
-
Android(安卓)通过Intent 传递对象
-
woyong
-
android 自带的日期控件 DatePicker
-
Android(安卓)ps 指令
-
Android_播放器的进度条