电话内部监听器类
- 格式:doc
- 大小:28.00 KB
- 文档页数:2
监狱亲情电话系统解决方案一、背景亲情电话作为监狱信息化管理和人性化管理的一种重要途径,是监狱亲情帮教一项重要内容, 它对于了解服刑人员的思想、稳定其情绪、监控其改造过程甚至对案件的审理、破获都起着非常重要的作用。
但具体落实亲情电话管理是一项费时、费力的工作。
处理不当,容易引起犯人不满,起不到好的作用,所以,通过科技的手段管理亲情电话,保证监狱安全、快捷、有效的利用亲情电话,是监狱管理的重要问题。
XX监狱共有4个分所,每个分所有4个监区,拟建设一套分布式部署的32线的亲情电话通信系统,为服刑人员提供人文关怀服务,通过亲情帮教的服务手段,加强监狱机关、服刑人员和家属之间的有效沟通,进一步提升行政执法机关的社会服务形象,创建一个和谐社会发展的环境。
二、客户需求2.1 系统建设目标✓实现对监狱内部电话终端的统一监管,严格按照国家规定的政策和监狱内部通讯管理条例,在安全可控范围内供服刑人员使用电话;✓提供科学有效的监控手段,实现系统自动控制话务,节省人力资源,帮助监狱提高信息化管理水平;✓提供亲情电话、亲属会见及心理热线等人性化沟通服务,加强服刑人员家属和干警之间的联系,缓解心理压力,帮助罪犯更快更好完成教育改造;✓可在现有的网络结构基础上,拓展监狱内部应用系统,譬如亲属会见、企业一卡通服务等。
✓提供在线监听功能,实时监控通话情况,提供录音功能,对通话进行实时录时,录音文件保存到服务器,可提供录音记录查询功能。
系统提供强插、强拆线功能,对于通话过程发现异常情况,管理人员可以对通话进行立即处理。
✓系统提供预付费或后付费的计费功能模块,能够对通话时长进行自动计费,对于欠费及预付款余额不足的情况能自动限制拨打电话。
✓系统分布式部署,集中管理。
2.2 系统设计原则监狱信息化建设是发展速度很快的行业领域,其新技术的出现是比较频繁的,所以系统也充分考虑了扩展性问题,使之能够跟上技术的发展趋势,系统设计总体原则包含:➢先进性:系统采用先进的、开放的体系结构和先进的程控交换技术,选用先进、成熟的开发环境和数据处理技术,软件设计具备前瞻性,能适应平台业务发展的需求;➢实用性:系统设计充分考虑监狱信息化建设的具体情况和实际需要,用户接口和界面设计进行充分优化,界面美观大方、功能完善、操作简便;➢扩展性:系统设计和开发采用模块化、结构化的思路,能方便地进行系统升级和功能扩充,并能提供和第三方软件的接口,具备良好的扩展性和灵活性;➢可靠性:系统满足处理大量、复杂数据时的准确性和时效性,具备数据自动备份和数据恢复技术;➢安全性:系统进行严格的安全机制设置,拒绝任何非法用户进入系统和合法用户的越权操作,避免系统遭到破坏,防止系统数据被窃取和篡改;➢易用性:系统后台管理模块,充分考虑不同层次使用计算机水平,力求易用易学。
如何获得信号的质量受到我们的电话。
这篇教程我们将教你如何接收信号强度你随时提供从你的载体。
让我们开始以教程:我们将继续学习如何添加一个监听器到电话类,以及如何获得CINR信号质量)(我们需要添加权限允许添加接下来的活动:android.permission.CHANGE_NETWORK_STATE“Android Manifest.xml”文件应该看起来如下:java代码:1.< ?xml version="1.0" encoding="utf-8"?>2.<manifestxmlns:android="/apk/res/android"3.4.package="eoe.demo"5.6.android:versionCode="1"7.android:versionName="1.0">8.<application android:icon="@drawable/icon"android:label="@string/app_name">9.<activity android:name=".GetGsmSignalStrength"10.android:label="@string/app_name">11.<intent -filter>12.<action android:name="android.intent.action.MAIN" />13.<category android:name="UNCHER" />14.</intent>15.</activity>16.17.</application>18.<uses -sdk android:minSdkVersion="4" />19.<uses -permissionandroid:name="android.permission.CHANGE_NETWORK_STATE"></uses>20.</manifest>现在让我们开始你的代码。
拾⾳器(监听器)、窗⼝对讲机安装与连接(附各型样本)拾⾳器(监听器)安装及注意事项:⼀、拾⾳器(监听器)安装位置的选择1、天花板吸顶或吊顶安装2、墙⾯侧挂安装3、桌⾯嵌⼊式安装4、埋墙隐蔽安装注意:安装位置尽量以谈话区域为中⼼。
例如:审讯室可以安装在被审⼈附近;教室可以安装在讲台附近;⼩型会议室可以安装在天花板中央。
安装原则:尽量靠近主要的谈话区域,这样的拾⾳效果更佳。
⼆、拾⾳器(监听器)连接电缆的选择及布线拾⾳器(监听器)可以使⽤普通4 芯电话线、5 类⽹络双绞线、屏蔽/⾮屏蔽信号电缆等。
考虑到复杂的施⼯环境,推荐使⽤0.5mm2 截⾯3 芯信号电缆(即常⽤的3×0.5 RVVP 电缆。
拾⾳器(监听器)供电⼀般分为两种:1、独⽴供电(推荐稳压电源),信号就⽤2×0.5 RVVP 电缆传输。
2、集中供电(在机房集中供电),⽤3×0.5 RVVP芯电缆,分别为电源正、⾳频信号正、公共地。
电磁复杂环境可以使⽤屏蔽电缆,其屏蔽层单端连接设备地。
即拾⾳器(监听器)⼀端的屏蔽⽹悬空,设备端的屏蔽⽹接设备地(机壳)。
注意:布线时最好单独⾛线,不要同交流电等强电使⽤同⼀缆槽,同时尽量远离变压器、灯具整流器等强电磁⼲扰设备。
3、怎么选择供电电源安装时要考虑到电源效率和线损问题,尽量选⽤标称值较⾼的电源。
这⾥所指的直流稳压电源就是常说的“线型变压器”,⼀般由电源变压器、整流⼆极管、滤波电容及集成稳压器构成。
尽量不要使⽤开关电源,它可能会导致⼤量的电路杂⾳!市⾯上很多开关电源品质差,纹波系数⾮常⼤,会引起拾⾳器有嗡嗡声。
红线:电源正极(12V直流稳压电源)蓝线:⾳频信号输出线(Line Out)⿊线:公共地(电源负极和⾳频地线公共使⽤)⾳头连接电缆的选择和布线:该系列拾⾳头连接电缆的技术指标要求低,可以使⽤普通4芯电话线、5类⽹络双绞线、屏蔽/⾮屏蔽信号电缆等,推荐使⽤0.5mm2截⾯3芯信号电缆。
8种监听器分别是:
1.监听器⽤来监听web程序中的事件,例如创建、修改、删除session、request、context等。
想要实现监听器的功能需要实现监听器的接⼝xxxLinetener,当Tomcat触发监听器的时候,会⾃动调⽤。
监听器可以分为四种类型:
1.监听对象的创建:
ServletContext:主要监听servletContext的创建,需要实现ServeltContextListener接⼝。
ServletRequest:主要监听request的创建,需要实现ServletRequestListener接⼝
HttpSession:主要监听session的创建,需要实现HttpSessionListener接⼝
2.监听属性的改变:
ServletContext:主要监听servletContext属性的更改、添加、删除,需要实现ServeltContextAttrbuteListener接⼝。
ServletRequest:主要监听request属性的更改、添加、删除,需要实现ServletRequestAttrbuteListener接⼝
HttpSession:主要监听session属性的更改、添加、删除,需要实现HttpSessionAttrbuteListener接⼝
3.监听session的活化与钝化:
httpSessionActivationListener主要监听了session的活化与钝化
4.监听session与对象的绑定:
httpSessionBindingListener监听了session与对象的绑定。
电话遥控监听器电路原理解析一、功能特点1. 远程控制家用电器的供、断电。2. 远程控制电器供电,延时自动关闭。3. 远程或本地修改密码、模拟摘机的振铃次数及遥控器所有的设置功能。4. 2路触点输出(连接220V电源插座),1路直流输出(12V),1路电平输出(含正、反相两个输出端,可以直接连接有关电器控制端)。5. 具有第二功能设置,增加了遥控监听器功能。6. 远程操作均有状态提示音。7. 所有设置的工作状态掉电后,数据保存(100年)不丢失。二、电路工作原理电话遥控监听器电路原理图如附图。IC3A、DW1、R7组成电话线路摘机检测和线路振铃信号检测电路。平时电话线路电压使得DW1击穿,光耦输入端电流较小,保证输出端输出低电平信号,P3.0被下拉成低电平,此时单片机主要任务是监测P3.0的电压变化。当与电话遥控器并联的电话机摘机或电话遥控监听器接收到振铃信号,且达到规定的振铃次数后,电话遥控器模拟摘机,电话线路上的电压,由48V降到7~8V。此时DW1截止,P3.0被内部的上拉电阻上拉成高电平。单片机测试到P3.0为高电平后,开启外部中断0,P3.2接收IC1(8870)发出的选通信号,一旦选通信号到来单片机便及时接收8870数据端~脚上的双音频信号数据。如果电话线路上出现了振铃信号,90Vp-p的振铃电压使得IC3A输出端按振铃频率导通和截止。P3.0从检测到IC3A输出高电平信号开始,自动判断是振铃信号还是摘机信号。对真正的25Hz方波振铃信号,单片机在每次振铃信号结束后进行振铃次数计数,并将振铃次数计数器中的数据与设定的振铃摘机数据比较,两者相等,P3.1置为低电平,通过IC3B 驱动三极管V1实现模拟摘机。模拟摘机后,主叫方能够听到遥控监听器中P3.1发出的三声鸣响提示。主叫方输入密码,电话遥控监听器对密码进行验证。密码正确发出验证通过的提示音;密码不正确发出未通过的提示音,并允许主叫用户再次输入密码。第二次输入的密码正确,进入后面的程序,两次输入的密码均不正确,电话遥控器挂机。主叫方正确输入密码后,便可以通过远程电话机的按键,输入不同的数字进行遥控操作,完成不同的控制任务。IC1接收电话线路上的双音频信号,并转换成数据送到单片机。IC1时钟信号采用3.579545MHz的晶体,单片机的时钟信号也取自IC1的振荡输出端。IC6 X25045是EEPROM电路,内含看门狗和电压监控器。该电路与89C2051配合,既解决了掉电后设置数据的保持问题,又解决了程序跑飞设置数据复位、低电压检测保护数据的问题。加之单片机与外部电路有联系的I/O口采用了光电隔离,大大提高了单片机的抗干扰能力,保证了电路的可靠工作。IC6和IC1的使能受单片机控制。正常工作时,IC1和IC6不会同时工作,因此两电路的数据线可以共用I/O口。单片机的P3.4、P3.5、P3.7各控制一个继电器电路,实现对家用电器的供电控制。单片机的控制输出脚与继电器之间用两个三极管隔离、放大,前级三极管用来倒相,后级三极管推动继电器工作。各路继电器的工作方式,也就是电话遥控器的控制方式由用户的操作和功能设置来决定。第一路继电器可以通过远程的不同按键完成开或关,也可以通过远程操作打开(供电),再输入3位数字,设置成延时001~999分钟后关闭。第二路继电器除可以通过远程不同的按键控制开或关外,还有第二功能设置。设置成第二功能后,工作状态由电话线路的工作状态来决定。正常情况下,第二路输出断电状态;当电话线路因摘机电压降低时,继电器延时1秒钟吸合,输出供电状态;当检测到电话线路挂机(线路电压恢复48V)后,延时3秒钟自动停止供电。该功能一般用于通讯设备的自动供电。例如,在一条电话线路上接有电话机和传真机,以电话机为主,也时常用到传真机,要求使用传真机时能够及时接收或发出传真。此时,用第二路控制一个插座,作为传真机的供电。平时传真机不供电,发传真时,传真机摘机,电话线路电压降低,传真机被自动供电,传真操作与原来一样。外线来电时,电话机振铃,被叫摘机,传真机供电,当对方要求发送传真时,按下传真启动键即可接收传真。这样,既可以方便地接收和发送传真,又保证了电话线路的正常通话。通过适当地设定电话遥控监听器模拟摘机的振铃次数,也保证了远程对其他电器设备的遥控操作。第三路继电器是单稳态输出,远程单键控制。按下操作按键后,继电器吸合,输出12V直流电,延时1.5秒自动复位。第三路主要用于控制电子门锁开闭,如对车库电子锁的控制。第四路是电平输出,有正反相两个输出端,用于对一些直接电平控制的家用电器进行控制。V7和周边元件组成放大电路,工作状态受单片机控制。平时P1.0为高电平,放大电路不能建立正常的工作点,没有放大能力,周围环境声音不会传送到电话线路上。当P1.0下拉成低电平的时候,放大电路进入正常的放大状态,MIC1接收周围的声音并转换成电信号,通过C10送到V7放大。选择电阻R15的阻值,使IC4A工作在线性工作状态,V7输出的音频信号通过R30和C2耦合到IC4A的输入端,输出端输出音频信号直接加到V1的基极。V1的工作点由R19调整在放大状态,上述音频信号经过V1射极放大,输出到电话线路上传送到主叫方。主叫方的监听时间1分钟,分成监听20秒,停止5秒,再监听20秒,停止5秒,最后监听10秒结束并挂机。在停止监听的5秒钟内还可以通过电话机按键解除监听或继续对上述4路的工作状态进行控制。在非监听状态下,如果20秒内没有按键操作,遥控监听器自动挂机。电路中3个继电器的触点输出、第四路的电平输出均用一个接线排输出,控制线可以直接、可靠地与接线柱连接。交流输出为触点(开关),不接连线时,输出端不带电,使用安全可靠。。
android呼入电话的监听(来电监听)android 呼入电话的监听(来电监听)两种方法需要权限:Xml代码1.<uses-permission android:name="android.permission.READ_PHONE_S TATE" />方式一:通过广播接收来电定义来电广播接收类Java代码1.package com.zhouzijing.android.demo;2.3.import android.content.BroadcastReceiver;4.import android.content.Context;5.import android.content.Intent;6.import android.telephony.TelephonyManager;7.import android.util.Log;8.9.public class BroadcastReceiverMgr extends BroadcastRec eiver {10.11.private final String TAG = MyBroadcastReceiver.TAG;12.13.@Override14.public void onReceive(Context context, Intent intent) {15.String action = intent.getAction();16.Log.i(TAG, "[Broadcast]"+action);17.18.//呼入电话19.if(action.equals(MyBroadcastReceiver.B_PHONE_STATE )){20.Log.i(TAG, "[Broadcast]PHONE_STATE");21.doReceivePhone(context,intent);22.}23.}24.25./**26.* 处理电话广播.27.* @param context28.* @param intent29.*/30.public void doReceivePhone(Context context, Intent in tent) {31.String phoneNumber = intent.getStringExtra(32.TelephonyManager.EXTRA_INCOMING_NUMBER);33.TelephonyManager telephony =34.(TelephonyManager)context.getSystemService(Contex t.TELEPHONY_SERVICE);35.int state = telephony.getCallState();36.switch(state){37.case TelephonyManager.CALL_STATE_RINGING:38.Log.i(TAG, "[Broadcast]等待接电话="+phoneNumber);39.break;40.case TelephonyManager.CALL_STATE_IDLE:41.Log.i(TAG, "[Broadcast]电话挂断="+phoneNumber);42.break;43.case TelephonyManager.CALL_STATE_OFFHOOK:44.Log.i(TAG, "[Broadcast]通话中="+phoneNumber);45.break;46.}47.}48.}定义Actitvity类Java代码1.package com.zhouzijing.android.demo;2.3.import android.app.Activity;4.import android.content.Context;5.import android.content.Intent;6.import android.content.IntentFilter;7.import android.os.Bundle;8.import android.telephony.PhoneStateListener;9.import android.telephony.TelephonyManager;10.import android.util.Log;11.import android.view.View;12.13.public class MyBroadcastReceiver extends Activity {14.public final static String TAG = "MyBroadcastReceiver";15.16.public final static String B_PHONE_STATE =17.TelephonyManager.ACTION_PHONE_STATE_CHANGED ;18.19.private BroadcastReceiverMgr mBroadcastReceiver;20.21.@Override22.public void onCreate(Bundle savedInstanceState) {23.super.onCreate(savedInstanceState);24.setContentView(yout.my_broadcast_receiver);25.}26.27.//按钮1-注册广播28.public void registerIt(View v) {29.Log.i(TAG, "registerIt");30.mBroadcastReceiver = new BroadcastReceiverMgr();31.IntentFilter intentFilter = new IntentFilter();32.intentFilter.addAction(B_PHONE_STATE);33.intentFilter.setPriority(Integer.MAX_VALUE);34.registerReceiver(mBroadcastReceiver, intentFilter);35.}36.37.//按钮2-撤销广播38.public void unregisterIt(View v) {39.Log.i(TAG, "unregisterIt");40.unregisterReceiver(mBroadcastReceiver);41.}42.43.}方式二:通过监听器来实现Java代码1.package com.zhouzijing.android.demo;2.3.import android.app.Activity;4.import android.content.Context;5.import android.content.Intent;6.import android.content.IntentFilter;7.import android.os.Bundle;8.import android.telephony.PhoneStateListener;9.import android.telephony.TelephonyManager;10.import android.util.Log;11.import android.view.View;12.13.public class MyBroadcastReceiver extends Activity {14.public final static String TAG = "MyBroadcastReceiver";15.16.@Override17.public void onCreate(Bundle savedInstanceState) {18.super.onCreate(savedInstanceState);19.setContentView(yout.my_broadcast_receiver);20.}21.22./**23.* 按钮-监听电话24.* @param v26.public void createPhoneListener(View v) {27.TelephonyManager telephony = (TelephonyManager) getSystemService(28.Context.TELEPHONY_SERVICE);29.telephony.listen(new OnePhoneStateListener(),30.PhoneStateListener.LISTEN_CALL_STATE);31.}32.33./**34.* 电话状态监听.35.* @author stephen36.*37.*/38.class OnePhoneStateListener extends PhoneStateListe ner{39.@Override40.public void onCallStateChanged(int state, String inco mingNumber) {41.Log.i(TAG, "[Listener]电话号码:"+incomingNumber);42.switch(state){43.case TelephonyManager.CALL_STATE_RINGING:44.Log.i(TAG, "[Listener]等待接电话:"+incomingNumber);45.break;46.case TelephonyManager.CALL_STATE_IDLE:47.Log.i(TAG, "[Listener]电话挂断:"+incomingNumber);48.break;49.case TelephonyManager.CALL_STATE_OFFHOOK:50.Log.i(TAG, "[Listener]通话中:"+incomingNumber);51.break;53.super.onCallStateChanged(state, incomingNumber);54.}55.}56.57.58.59.60.}。
电话窃听器编写三
在“电话窃听器编写二”中,我们已经实现类电话窃听的功能。
但若要开启该窃听服务,我们需要点击开启按钮,这在实际项目中是不科学的。
下面我们继续优化该电话窃听工程代码,通过广播接收者来开启这个窃听服务。
需求设计:通过监听手机的开机状态,一旦开机就启动监听服务。
为了实现这一需求,我们需要编写开机启动的内容接受者,然后通过该内容接收者开启手机的监听服务。
1.编写内容接受者
在之前的项目中,我们已经详细的介绍了广播接收者的使用方法。
参考项目“04_勒索软件”,我们将在“11_省电助手”中编写一个开机启动的广播接收着,代码如例1-1:
2.声明接收者并指定接收广播
在清单文件中注册该广播接受者,代码如例
1-2:
的目的。
先锋音讯电话录音监控系统一、电话录音监控系统概述录音作为国内知名的电话录音产品供应商,公司研发部根据用户实际情况,开发出了电话实时录音监控系统,该系统以Windows95、Windows98、WindowsNT作为系统的操作平台,采用计算机处理技术,单机可监控多路电话同时工作,自动化程度高,信息存储量大,效率高,节约成本,并且信息可长期存贮在光盘,磁带中,信息查询方便,保密性强,及界面友好直观,操作简单明了,功能强大兼顾它用,可在前后台运行。
电话录音监控系统的诞生标志着电话录音从无凭走向有据,从多级走向有序规范化管理的重要转变。
它以数字录音,数据库查询光盘存储等先进技术为手段,为录音监控的监督管理提供一种先进科学而又行之有效的方法。
二、电话录音监听系统功能1、录音功能:当电话打进来,值班人员提话机时系统便自动进行电话录音,系统把语音信号以数字化语音格式写入硬盘。
同时系统记录其通话日期,摘机时间,挂机时间和当前通话时间等信息,如果该次电话为打出电话,还可记录其打出的电话号码。
当值班人员挂机时系统便会自动停止电话录音。
2、通道容量:同时对多条电话线路(4-64)进行实时录音,各线路之间互不影响、分别存储,不影响通话双方正常通话,其中必有一通道用于放音或实施监听3、实时监听功能: 可以通过有源音响或耳机对任意一路当前通话的通道进行实时监听,监听时不会影响通话人,也不会影响录音质量4、查询、放音功能:可按通道号,日期,时间,拨出电话号码四种条件进行单个和组合查询,查询方便快捷,数据表的下边还显示出数据资料的统计。
可以任意播放一个录音或选择多个录音依次播放,放音时将弹出当前语音文件的放音进度等信息。
5、自动备份、自动报警功能:系统实时向备份盘进行自动备份(备份盘号,告警范围除系统管理员设置,也可以采用系统的缺省值)。
在采用自动备份功能时,备份盘的剩余空间达到设定的告警范围时,系统便进行语音报警,提示系统管理员换盘(本系统采用CD-RW作为备份盘)。
Android⼴播接实现监听电话状态(电话的状态,拦截)⾸先我们来理解下监听器的机制。
Android的事件处理机制有两种:监听和回调。
A基于监听的事件处理主要涉及三类对象:EventSource(事件源),Event(事件),EventListener(事件监听器)监听机制处理事件的流程图如下(委派式:Delegation):1:需要在AndroidManifest.xml清单中添加权限<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/><uses-permission android:name="android.permission.READ_PHONE_STATE" />2:注册⼴播要注意事件的级别(android中的级别-1000~1000)<receiver android:name=".PhoneBroadcastReceiver"><intent-filter android:priority="1000"><action android:name="android.intent.action.NEW_OUTGOING_CALL"/><action android:name="android.intent.action.PHONE_STATE"/></intent-filter></receiver>详细配置请看 AndroidManifest.xml<manifest xmlns:android="/apk/res/android"package="com.zyw.broadcastsendsms"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="15" /><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".SendSMS"android:label="@string/title_activity_send_sms" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="UNCHER" /></intent-filter></activity><receiver android:name=".PhoneBroadcastReceiver"><intent-filter android:priority="1000"><action android:name="android.intent.action.NEW_OUTGOING_CALL"/><action android:name="android.intent.action.PHONE_STATE"/></intent-filter></receiver></application><uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/><uses-permission android:name="android.permission.READ_PHONE_STATE" /></manifest>3:编写⼴播的实现类这⾥需要继承BroadcastReceiver 实现onReceive()⽅法程序的源代码如下:package com.zyw.broadcastsendsms;import android.app.Service;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.telephony.TelephonyManager;import android.util.Log;public class PhoneBroadcastReceiver extends BroadcastReceiver {private static final String TAG = "message";private static boolean mIncomingFlag = false;private static String mIncomingNumber = null;@Overridepublic void onReceive(Context context, Intent intent) {// 如果是拨打电话if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {mIncomingFlag = false;String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);Log.i(TAG, "call OUT:" + phoneNumber);} else {// 如果是来电TelephonyManager tManager = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);switch (tManager.getCallState()) {case TelephonyManager.CALL_STATE_RINGING:mIncomingNumber = intent.getStringExtra("incoming_number");Log.i(TAG, "RINGING :" + mIncomingNumber);break;case TelephonyManager.CALL_STATE_OFFHOOK:if (mIncomingFlag) {Log.i(TAG, "incoming ACCEPT :" + mIncomingNumber);}break;case TelephonyManager.CALL_STATE_IDLE:if (mIncomingFlag) {Log.i(TAG, "incoming IDLE");}break;}}}/*@Overridepublic void onReceive(Context context, Intent intent) {String number = getResultData();if("5556".equals(number)){setResultData(null);//挂断}else{number = "12593"+ number; //其他,则加区号setResultData(number);}}*/}以上内容给⼤家介绍了Android⼴播接实现监听电话状态(电话的状态,拦截)的相关知识,希望对⼤家有所帮助!。
public class MainActivity extends Activity {
//定义界面中的控件,以Activity中的属性形式出现
private EditText edtNumber;
private Button btnPhone;
@Override
protected void onCreate(Bundle savedInstanceState) { //调用父类中的对应方法
super.onCreate(savedInstanceState);
//将指定的布局文件放入Activity中的ContentView
//内容视图主体容器
//通过R.java资源文件获取的布局xml文件
setContentView(yout.activity_main);
//获取指定控件 findViewByid,返回的是一个view对象
//强制类型转换成对应的控件
//findViewByid(R.id.要获取的控件的id值)
edtNumber=(EditText) findViewById(R.id.edt_number);
btnPhone=(Button)findViewById(R.id.btn_phone);
//给btnPhone按钮添加一个单击事件监听器
//btnPhone.setOnClickListener(new MyListener());
}
//1==使用内部监听器实现
//内部类监听器类
private class MyListener implements View.OnClickListener {
//特定事件的响应
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
callphone();
}
}
private void callphone()
{
//获取号码
String number=edtNumber.getText().toString().trim();
//判断号码的有效性
if(TextUtils.isEmpty(number))
{
//给出弹框的提示
Toast toast=Toast.makeText(MainActivity.this, "您的电话号码不能为空", Toast.LENGTH_LONG);
toast.show();
return;
}
//完成实际拨号创建一个intent相当于信使
Intent intent=new Intent();
//设置intent的行为和属性
intent.setAction(Intent.ACTION_CALL);
//设置属性数据电话格式
intent.setData(Uri.parse("tel:"+number));
//跳转到下一个Activity
startActivity(intent);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}。