主代码写

package com.example.phonerecorder;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

public void start(View v){

//开启服务通过intent

Intent intent = new Intent(this,Recordservice.class);

startService(intent);

}

//停止服务通过intent

public void stop(View v){

Intent intent = new Intent(this,Recordservice.class);

stopService(intent);

}

}

Recordservice类要继承Service成为一个服务类

由于是服务所以要在清单中设置

package com.example.phonerecorder;

import android.app.Service;

import android.content.Context;

import android.content.Intent;

import android.os.IBinder;

import android.telephony.PhoneStateListener;

import android.telephony.TelephonyManager;

import android.util.Log;

public class Recordservice extends Service {

@Override

public IBinder onBind(Intent intent) {

// TODO Auto-generated method stub

return null;

}

@Override

public void onCreate() {

Log.e("tag", "开启");

// TODO Auto-generated method stub

super.onCreate();

//创建一个电话管理器的对象(通过这个对象可以监听听电话的状态)

TelephonyManager manager = (TelephonyManager)

getSystemService(Context.TELEPHONY_SERVICE);//传入一个电话服务

//调用电话管理器的listen方法:注册监听

//参数 : 1监听器 2要监听打电话的状态

Listener listener = new Listener();

manager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);

}

@Override

public void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

Log.e("tag", "服务被销毁");

}

class Listener extends PhoneStateListener{

//状态改变调用

@Override

public void onCallStateChanged(int state, String incomingNumber) {

// TODO Auto-generated method stub

super.onCallStateChanged(state, incomingNumber);

switch (state) {

case TelephonyManager.CALL_STATE_RINGING:

Log.e("tag","响铃"+incomingNumber+"准备一个录音机");

break;

case TelephonyManager.CALL_STATE_OFFHOOK:

Log.e("tag","接电话了"+incomingNumber+"开始录音");

break;

case TelephonyManager.CALL_STATE_IDLE:

Log.e("tag","空闲状态"+"录音结束");

break;

default:

break;

}

//录音需要用户的权限,在清单中添加READ_PHONE_STATE:读音状态

//

}

}

}

效果图

image.png

android监听服务,服务监听打电话相关推荐

  1. 关于Oracle创建新的监听和服务名的问题一二

    最近在学习oracle,是自学,完全的自学,没有任何老师的指导.从图书馆借了本 <Oracle DBA宝典>这本书.好厚啊,下定了决心,就开始了.最近看到了关于创建新的监 听的问题,书中说 ...

  2. oracle 设置监听和服务,oracle服务端和客户端之间的网络监听设置

    下面为您介绍的是oracle服务端和客户端之间的网络监听设置,如果您在oracle服务端和客户端之间的网络监听设置方面遇到过类似的问题,不妨一看. oracle服务端和客户端之间的网络监听设置 假如我 ...

  3. windows重启oracle监听口令,oracle_windows下命令启动oracle监听和服务

    1.检查监听器状态 C:\Users\Administrator>lsnrctl status 2.启动监听程序 C:\Users\Administrator>lsnrctl start ...

  4. oracle 双结点监听文件,RAC监听服务两个节点 只能起一个

    我的问题是, RAC系统有两个节点, endpoints_listener和istener 配置如下: node1: LISTENER_DB1=(DESCRIPTION=(ADDRESS_LIST=( ...

  5. oracle一般监听配置文件,Oracle监听配置讲解

    本文作者:贺圣军,叩丁狼高级讲师.原创文章,转载请注明出处. 很多使用Oracle的朋友遇到最多的问题就是Oracle数据库已经安装完成, 但是在使用Oracle客户端pl/sql等工具却怎么都连接不 ...

  6. activemq 开启监听_ActiveMQ 消息监听 MessageListener 的使用

    刚学 ActiveMQ, 最开始搭建环境的时候引入的jar 包,几个核心的jar jms.jar, httpcore.jar , httpclient.jar, activemq-all.jar 准备 ...

  7. watch深度监听数组_vue watch普通监听和深度监听实例详解(数组和对象)

    vue watch普通监听和深度监听实例详解(数组和对象) 下面通过一段代码给大家介绍vue watch的普通监听和深度监听,具体代码如下所示: var vm=new Vue({ data:{ num ...

  8. js微信监听返回_JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法...

    在实际的应用中,我们常常需要实现在移动app和浏览器中点击返回.后退.上一页等按钮实现自己的关闭页面.调整到指定页面或执行一些其它操作的需求,那在代码中怎样监听当点击微信.支付宝.百度糯米.百度钱包等 ...

  9. Vue监听器的基本使用(监听属性-深度监听和立即执行)

    一:vue监听器-基本使用 语法是: watch: {"被监听的属性名" (newVal, oldVal){}} 方便理解,示例代码: <template><di ...

  10. AWT—鼠标监听,窗口监听,键盘监听

    AWT-鼠标监听,窗口监听,键盘监听 鼠标监听 目的:实现鼠标作画 package com.deng.lesson03; ​ import java.awt.*; import java.awt.ev ...

最新文章

  1. 深度学习--TensorFlow(6)神经网络 -- 拟合线性函数非线性函数
  2. EKL相关(一)、安装环境
  3. 【Java 线程的深入研究3】最简单实例说明wait、notify、notifyAll的使用方法
  4. 几种移动开发技术的比较和选型
  5. jQueryEasyUI框架 - panel 选项卡高度自适应
  6. DARPA 想用自动化技术制造出最强的黑客
  7. Electron 实战:前端人的最佳跨平台解决方案
  8. python模块整理12-pdb调试模块
  9. Linux sites
  10. 桌面虚拟化(四):第二阶段,形影不离的贴身秘书
  11. docker配置 nacos_Docker下配置nacos
  12. 阿里天池大数据竞赛——口碑商家客流量预测 A1
  13. 【LTspice】010 串联谐振电路
  14. yolov5+Deepsort实现目标跟踪
  15. WPS添加页码不是从首页开始
  16. 学生信息管理系统-教师端
  17. ORB-Mono原理梳理
  18. java计算机毕业设计Web商铺租赁管理系统MyBatis+系统+LW文档+源码+调试部署
  19. C#回顾学习笔记四十:三层架构
  20. 分布式网页爬虫系统 设计和实现

热门文章

  1. 龙光集团现代系,焕新城市人居体验
  2. java(Vue+SpringBoot)实现头像上传功能
  3. GB8624-2012 与GB8624-2006 有什么区别?
  4. Webfrom --中国直辖市三区联动
  5. 【CTF】LFI漏洞总结(PHP本地文件包含漏洞)
  6. 人脸验证:DeepID(转)
  7. 计算机中的数据是一个广义的概念,广义数据结构
  8. 农夫山泉:HANA应用在企业中层层展现
  9. 泛娱乐生态倒逼,各大视频为何抢位3D动画?
  10. 就是策划和服务器维护,DNF官方策划针对跨区服务器的回应