Android-電話錄音
TelephonyManager telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
//通過電話管理監聽通話狀態(回調機制)
telManager.listen(listener,PhoneStateListener.LISTEN_CALL_STATE);
listener = new PhoneStateListener(){
public void onCallStateChanged(int state,String incomingNumber){
Switch(state){
Case TelephonyManager.CALL_STATE_IDLE://空閑
CASE TelephonyManager.CALL_STATE_OFFHOOK:掛起電話
CASE TelepnhonyManager.CALL_STATE_RINGING:響鈴
}
}
}
//錄音
Recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.OutputFormat.THREE_GPP);//.3gp
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(“/mnt/sdcard/”+filename);
recorder.prepare();
recorder.start();
recoding = true;
<uses-permission android:name=”android.permission.READ_PHONE_STATE”/>
android2.0(API 5)測試通過,2.2不可以.
通過Receiver機制(收到手機啟動完成的廣播)啟動電話錄音服務
XxxReceiver extends Receiver{
Public void onReceive(){
Intent = new Intent(this,XxxxService.class);
startService(intent);
}
}
//配置使用許可權
<uses-permission www.2cto.com
android:name = “android.permission.RECEIVE_BOOT_COMPLETED”/>
<uses-permission android:name=”android.permission.READ_PHONE_STATE”/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name=”android.permission.INTERNET”/>
<uses-permission android:name=”android.permission.RECORD_AUDIO”/>
註:
電話錄音者應用程式需要停止卡塔莎錄屏軟體,否則電腦卡死。
作者:toto1297488504