本文實(shí)例講述了android編程實(shí)現(xiàn)電話錄音的方法。分享給大家供大家參考。具體如下:
在清單文件AndroidManifest.xml中添加權(quán)限:
1
2
3
4
5
6
7
8
9
|
< uses-permission android:name = "android.permission.READ_PHONE_STATE" /> <!-- 在SDCard中創(chuàng)建與刪除文件權(quán)限 --> < uses-permission android:name = "android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 往SDCard寫入數(shù)據(jù)權(quán)限 --> < uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE" /> < uses-permission android:name = "android.permission.RECORD_AUDIO" /> <!-- 訪問internet權(quán)限 --> < uses-permission android:name = "android.permission.INTERNET" /> < uses-permission android:name = "android.permission.RECEIVE_BOOT_COMPLETED" /> |
java代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
public class PhoneListenerService extends Service { @Override public void onCreate() { TelephonyManager manager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); //監(jiān)聽電話的狀態(tài) 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: /* 電話進(jìn)來時(shí) */ num = incomingNumber; break; case TelephonyManager.CALL_STATE_OFFHOOK: /* 接起電話時(shí) */ 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: /* 無任何狀態(tài)時(shí) */ if (recorder != null ) { recorder.stop(); recorder.release(); } break ; } } } } |
希望本文所述對大家的Android程序設(shè)計(jì)有所幫助。