废话少说,直奔主题~!

结构如图:

mybroad.java代码:

public class mybroad extends BroadcastReceiver {static final String ACTION = "android.intent.action.BOOT_COMPLETED";@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubif (intent.getAction().equals(ACTION)){Intent service = new Intent(context, MyService.class);    context.startService(service);Log.d("d", "服务已经开始");}}}

MyService.java代码:

public class MyService extends Service {@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();Log.d("d", "进入服务");TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);    tm.listen(psl, PhoneStateListener.LISTEN_CALL_STATE);Log.d("d", "服务已启动");}PhoneStateListener psl = new PhoneStateListener() {private Boolean call_pd = false;private MediaRecorder mr;private String number;@Overridepublic void onCallStateChanged(int state, String incomingNumber) {// TODO Auto-generated method stub// super.onCallStateChanged(state, incomingNumber);switch (state) {case TelephonyManager.CALL_STATE_IDLE:number = null;if ( mr != null && call_pd) {mr.stop();mr.reset();mr.release();call_pd = false;}                Log.d("d", "录音结束");break;case TelephonyManager.CALL_STATE_OFFHOOK:try{mr = new MediaRecorder();mr.setAudioSource(MediaRecorder.AudioSource.MIC);mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);SimpleDateFormat format = new SimpleDateFormat("yyMMddHHmmss");//String fileName = this.number + "_"+ format.format(new Date());mr.setOutputFile("//sdcard//" + fileName + ".3gp");Log.d("d", Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + fileName + ".3gp");mr.prepare();mr.start();Log.d("d", "开始接电话");call_pd = true;}catch(Exception ex){Log.d("d","有错误");}break;case TelephonyManager.CALL_STATE_RINGING:this.number = incomingNumber;Log.d("d", "电话进来");break;default:break;}}};@Overridepublic IBinder onBind(Intent arg0) {// TODO Auto-generated method stubreturn null;}}

AndroidManifest.xml代码:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="Tel_Listener.Jason"      android:versionCode="1"      android:versionName="1.0">    <uses-sdk android:minSdkVersion="4" />    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>    <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>        <application android:icon="@drawable/icon" android:label="@string/app_name">               <service android:name="MyService">        </service>        <receiver android:name="mybroad">         <intent-filter>                         <action android:name="android.intent.action.BOOT_COMPLETED"/>                <category android:name="android.intent.category.LAUNCHER"></category>         </intent-filter>        </receiver>     </application></manifest>

更多相关文章

  1. Android之十三图片2D翻转
  2. android webview实现唤起qq临时会话
  3. 在Eclipse 中关联android sdk 源代码
  4. Android的Location功能代码
  5. android http通信——HttpURLConntection
  6. Android(安卓)4.0 HttpURLConnection 下载失败问题
  7. 在Android中使用NDK调用OpenGl
  8. Android读取服务端TXT(JSON格式数据)返回汉字乱码的问题
  9. 操作内存卡的常用代码

随机推荐

  1. [置顶] 【Android】开源 闲暇(Leisure)
  2. ClassLoader解析——Android篇
  3. Android RIL
  4. Android 开发中的日常积累
  5. Android黑科技动态加载(三)之动态加载资
  6. Android保证service不被杀掉-增强版: 进
  7. android 样式表-selector
  8. android apk的签名和权限问题
  9. android TextView字体颜色根据焦点点击变
  10. Android里的动画(补间动画,帧动画,属性动画)