標籤:android style http color 使用 strong
需求分析: 記錄通話過程中的錄音,並儲存到指定路徑~
知識點:1.手機開機發出廣播,廣播接受者收到通知,開啟service服務 2.Service工作流程:
1.擷取手機管理對象·
2.注冊監聽器,對應手機狀態
3.依據手機狀態(響鈴、通話、空暇),建立Mediaplay對象,暫停 這裡監聽手機狀態,加入?許可權 <uses-permission android:name="android.permission.READ_PHONE_STATE"/>代碼:TelephonyManager manager=(TelephonyManager) getSystemService(TELEPHONY_SERVICE);//擷取電話管理 manager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE); //用電話管理器注冊一個監聽器,監聽電話狀態注意:手機狀態監聽這,能夠監聽多個狀態,LISTEN_CALL_STATE監聽的是手機狀態的變化,下面該監聽器其它的監聽對象手機狀態改變的state三種值:空暇、通話、掛斷
依據三種狀態,處理Mediaplayer,代碼
public void onCallStateChanged(int state, String incomingNumber) {// 電話狀態改變時運行該方法switch (state) {case TelephonyManager.CALL_STATE_RINGING:Log.d("Debug","響鈴");num = incomingNumber;// 響鈴時, 記錄號碼break;case TelephonyManager.CALL_STATE_OFFHOOK:Log.d("Debug","開始錄音");startRecording();// 摘機時, 開始錄音break;case TelephonyManager.CALL_STATE_IDLE:Log.d("Debug","空暇狀態");stopRecording();// 空暇時, 結束錄音break;}}思考:假設手機沒有響鈴?停止錄音:private void stopRecording() {if (mRecorder != null) {mRecorder.stop();// 停止 mRecorder.release(); // 釋放資源 mRecorder = null;// 記憶體回收}}開始錄音:private void startRecording() {try {Log.d("Debug", "startRecording");mRecorder = new MediaRecorder(); // 建立媒體記錄器mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);// 設定音頻源mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);// 設定輸出格式mRecorder.setOutputFile("/mnt/sdcard/" + num + "_" + System.currentTimeMillis() + ".3gp"); // 設定輸出檔案路徑mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);// 設定編碼mRecorder.prepare();// 準備mRecorder.start();// 開始} catch (Exception e) {e.printStackTrace();} }}}
總結:MediaPlayer操作過程,停止和錄音過程~,這裡使用到了sdcard所以,必須聲明許可權。
<uses-permission android:name="android.permission.RECORD_AUDIO"/>//同意程式進行錄音
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> //寫入儲存卡資訊清單檔的配置資訊: <receiver android:name=".PhoneBroacast"> <intent-filter > <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> <service android:name=".PhoneService"> </service>