在android程序中处理来电

我想在android平台上处理来电。我想设定一个时间期限, 如果手机接收到电话时,就会自动的发给来电用户一个信息。

如何设置?

0

2个回答

你需要在 Activity 或者 Service中申明 PhoneStateListener:

PhoneStateListener phoneStateListener = new PhoneStateListener() {
    @Override
    public void onCallStateChanged(int state, String incomingNumber) {
        if (state == TelephonyManager.CALL_STATE_RINGING) {
            ....
        } else if(state == TelephonyManager.CALL_STATE_IDLE) {
            ....
        } else if(state == TelephonyManager.CALL_STATE_OFFHOOK) {
            ....
        }
        super.onCallStateChanged(state, incomingNumber);
    }
};

再在AndroidManifest.xml 中添加下面的权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
0

继承你的类到 PhoneStateListener,并且重写 onCallStateChanged 方法:

  class myCallListener extends PhoneStateListener{
                @Override
            public void onCallStateChanged(int state, String incomingNumber) {
                // TODO Auto-generated method stub
                switch (state) {
                case TelephonyManager.CALL_STATE_RINGING:
                        // your logic here
                    break;
                    default:
                    break;
                }
                    super.onCallStateChanged(state, incomingNumber);
                }
        }
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android6.0来电流程
先放出6.0的MT时序图大家有个直观感受,下面代码一步步进行分析 第一部分:RIL–>GSMPhone Call状态变化 -> 发出来电通知(frameworks\opt\telephony) 1. framwork/opt/telephony/…/RIL.java 作用:RIL-Java在本质上就是一个RIL代理,起到一个转发的作用,是Android Java概念空间中的电话系
Android开发之监听手机来电
本应用是通过Activity实现的,如果把实例中的代码放到后台执行的Service中运行,并设置Service组件跟随系统启动,那个这中 监听就可以做到“神不知,鬼不觉”了。嘿嘿.............
Android系统获取用户来电信息
在onCreate()方法中加入以下语句: MyPhoneStateListener phoneListener=new MyPhoneStateListener(); TelephonyManager telephonyManager =(TelephonyManager)getSystemService(TELEPHONY_SERVICE); telepho
播放音乐处理来电和挂电问题
电话监听请看http://blog.csdn.net/b1480521874/article/details/54692558 音频焦点用法请看http://blog.csdn.net/b1480521874/article/details/54669032 注意一个问题:就是有可能先收到挂断的广播再收到重获音频焦点,也有可能先重获了音频焦点再收到挂断的广播。而要挂断且获得了音频焦点才
模拟来电的实现
模拟来电这个功能其实Android原生就有实现,想想Android模拟器是可以来电或者拨号的吧。这个功能对于手机厂商的程序员来说,节省了大量调整UI的时间,不用去真的打电话来呈现UI。实现有两种方式: 实现虚拟的BaseCommands 这种方式也是Android5.0之前预留的方式。 frameworks/opt/telephony/src/java/com/android/interna
Android实现来电和去电的监听
写个实例实现Android中来电和去电的监听,来电可以使用PhoneStateListener对电话状态的改变进行监听,去电需要动态或者静态去注册广播接收器,对去电进行监听;
描述Android系统在视频播放时来电话的解决方案
1.当来电后返回后,只有声音,没有画面时,是因为当前activity对象被遮挡后,SurfaceView对象被销毁,而activity重新显示时他的重建晚于onResume()方法的执行。 此时应解决SurfaceView的重建问题: private final class SurfaceCallback implements Callback{  public void sur
android9.0来电无法获取处理
https://developer.android.com/about/versions/pie/android-9.0-changes-all?hl=zh-cn 这个连接说了。android 必须添加新权限,官网说: 限制访问电话号码 在未首先获得 READ_CALL_LOG 权限的情况下,除了应用的用例需要的其他权限之外,运行于 Android 9 上的应用无法读取电话号码或手机状态。 与来...
Android 获取来电号码和去电号码
转载请注明出处: http://blog.csdn.net/like_program/article/details/52662942 这篇博客将讲解 Android 如何获取来电号码和去电号码。
Android通过来电号码识别姓名。
项目中遇到需要通过来电号码获取到联系人姓名的需求。 然而,简单地通过联系人数据库的Filter来获取来电号码在部分手机是获取不到保存的联系人的,比如三星S3,需要获取通信录保存的有+86等国区码,而来电没有+86的情况。部分手机也会出现保存的没有+86,来电有+86无法获取的情况。 那么,我们就需要通过获取所有联系人的电话号码,通过比较来电号码来知道该来电号码的姓名是谁。 再深入我们就会发现
Android N 来电流程(MT)
本流程图基于MTK平台 Android N,普通来电,本流程只作为沟通学习使用本篇文章写作顺序是从modem上报消息,一层一层上报到incallUI,读者可以根据需求选择阅读顺序。frameworks/opt/telephony/当对方拨打电话后,运营商就会通过基站向含有特定SIM卡手机的modem发送指令,当手机modem收到这个指令后就会发生变化,并将变化信息通过AT指令集的方式传送给RILC,
Android studio 上代码实现来电拦截
第一步:在程序中新建一个包,包名必须为:com.android.internal.telephony,因为要使用aidl。 a. aidl文件放在aidl目录下, 和java目录同级 b. ITelephony.aidl文件的包名是com.android.internal.telephony; 第二步:在这个包里面新建一个名为ITelephony.aid
Android 系统自动获取来电/短信/提示铃声
方法一: 设置个性短信铃声: 设置个性短信铃声需要使用到一个软件“短信提示器”, 添加自己个性铃声到铃声列表的方 式和“设置个性来电铃声”是一样的, 选择好自己需要的铃声之后, 就可以进入短信提示器 这个软件了, 点击“短信设置”——点击“启用通知”, 在“提示音”中选择铃声列表中自 己的个性铃声。 “振动选项”中选择启用震动, 另外还可以选择振动方式和 LED 灯提示选项, 可以说这款软件
Android 代码实现来电拦截
为了更好地理解这个Demo,我先向大家介绍一下需求与功能。 需求: 每天都会有很多无聊的电话,比如推销商品等,占用我们大量时间不说,有时候还会打乱我们的思路,扰乱我们的正常生活。所以实现一个对某些号码(比如陌生号码,指定号码/黑名单等)进行拦截以避免受到骚扰,是很有现实用途的。 为了避免程序过分复杂,造成不易学习的麻烦我在这里只实现“如果来电号码没在联系人中,则进行挂断,并存入xml文件(S
来电铃声和通话中的提示音
InCallTonePlayer packages/services/Telecomm/src/com/android/server/telecom/InCallTonePlayer.java,该类用于通话中提示音的播放。 public static class Factory { private final CallAudioManager mCallAudioMa
Android中InCallUI显示太慢问题分析
完整分析流程和详细内容也可以下载PDF文档:InCallUI_issue_analysis_report一、问题现象当手机有来电时,先听到铃声,过了比较长的一段时间(3-4s)屏幕才点亮并显示来电界面。Platform:MT6581Android版本:4.4KKBuildType:userdebug系统软件版本:SWC1E+UP系统RAM:512M二、Android4.4来电及IncallUI显示
Android5.0 InCall 通话界面显示流程
收到底层发送的通话状态的消息后到UI处理 RIL.java      processResponse() -- processUnsolicited (p)  -- notifyRegistrants() UNSOL_PROGRESS_INFO GsmCallTracker.java  handleMessage ()  - EVENT_CALL_STATE_CHANGE
android音乐播放器监听电话状态,解决通话中的音乐的播放
在音乐播放时电话打进来当然不希望音乐和来电铃声一同在响,所以下面的代码能解决此问题。 在 MusicPlayService中先创建一个电话状态监听的方法 /** * 电话状态监听事件 */ private boolean mResumeAfterCall = false; private PhoneStateListener mPhoneSt
Android app开机广播开启app来电广播
来电广播检测,是否为本公司员工,是本公司员工,提示为本公司谁谁谁,哪个部门。 为了开机不启动app 也可以检测来电广播: 1、在静态注册广播的时候 指定exported = true &amp;lt;!-- 注册监听手机状态 --&amp;gt; &amp;lt;receiver android:name=&quot;.receiver.PhoneStateReceiver&quot; ...
Android应用监听来电、短信等方法
这功能最好放在一个Service中,在需要的地方启动这个Service即可。直接上代码吧:/** * 检测来电、短信 */ public class NotificationMonitorService extends Service { private static final String TAG = "NotificationMonitor"; private static
android 电话状态监听(来电和去电)实现代码
从事android开发的朋友们可能电话状态监听不是很擅长,接下来将详细介绍电话状态监听功能的实现步骤,需要了解的朋友可以参考下。 实现手机电话状态的监听,主要依靠两个类:TelephoneManger和PhoneStateListener。 TelephonseManger提供了取得手机基本服务的信息的一种方式。因此应用程序可以使用TelephonyManager来探测手机基本服务的情况。应
Android 8.1 来电默认全屏显示 如何修改
在Android 8.1上来电全屏显示 如何修改呢?直接上代码 1.alps\vendor\mediatek\proprietary\packages\apps\SystemUI\src\com\android\systemui\statusbar\phone\StatusBar.java 在shouldPeek方法里加入如下代码: boolean inUse = mPowerManager...
android_来电广播
MyPhoneState.java package com.example.phone; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telephony.TelephonyManager; import
Android开发总结-获取来电号码
最近项目要做一个能捕获到来电事件,取得电话号码的应用.在网上查了二天,算是运行成功了.在这里分享一下经验:)     通过之前对Android 的学习,认为来电话时应该是通过广播(broadcast)通知给应用的.所以就在Reference里找,知道Broadcast Action应该在 anroid.content.Intent类里找.找了找Standard Broadcast Ac...
andriod 自定义来电界面功能实现的一些思考
转载:http://blog.csdn.net/likebamboo/article/details/14449881        由于近期所做一个项目需要做类似于“来电秀”的功能,所以上网搜索了一些相关资料,加上自己的一些想法,做了一个Demo。一下是我对该功能实现的一些想法,不对的地方欢迎各位指出。最后我会给出Demo 的源代码。        首先,Android系统的
Android 8.0来电流程分析(一)
来电时底层会上报消息到RIL层,在Android8.0上目前已经做了修改,不再使用Socket进行通信,而是使用ril_service服务进行通信,O的系统上引入了HIDL机制,telephony的framework层引用底层的服务就用到了此机制,这也导致了RIL层的调整,本篇博客在7.0的基础上进一步分析其变化,建议同步对照7.0和8.0的代码阅读。 1.我们从RIL层开始往上追溯,RIL接收
Android 7.0 通话界面(InCallUI)是怎么出来的。
InCallUI 最终的启动是在                packages\apps\Dialer\InCallUI\src\com\android\incallui\InCallPresenter.java           调用此函数启动的               public Intent getInCallIntent(boolean showDialpad, boole
Android之来电秀实现(一)
简单的说下实现来电秀的大概原理流程:首先通过监听来电状态,通过拦截来电然后在窗口弹出一层系统级别的弹窗,这层弹窗即是来电秀。 因为商用的原因,不能直接贴代码,所以在这里,会贴一些比较核心的代码,大概分为五个步骤: 第一:监听来电状态 /** * 电话状态监听(来电或去电) * * @author Jenly * */ public class PhoneStateRe
Android 获取来电号码 + 悬浮框
获取来电号码,要引入两个包:import android.telephony.PhoneStateListener; import android.telephony.TelephonyManager; 清单文件中加两个权限: 1,开启一个Service,后台监听 在oncreate()中: mTelManager = (TelephonyManager) getSystemServi
Android 代码设置来电铃声
1、如果读到的是音频文件路径,需要先将音乐文件插入到多媒体库。 //设置--铃声的具体方法      public void setMyRingtone(String path)      {         File sdfile = new File(path);        ContentValues values = new ContentValues();        values
Android 8.0来电流程分析(三)
Telecomm Service 这里我们可以看出CallsManager的管理作用,创建Calls并添加监听,在完成Call的相关初始化后进行进一步处理,其实就是传递消息到别的的地方去。 1.那么继续到CallsManager中跟进 @Override public void onSuccessfulIncomingCall(Call incomingCall) { ...
android 播放来电铃声
android中如何用mediaplayer播放自己设置的来电铃呢? 最近做一个android小应用的时候需要用到这个。上网查了一下,可以用mediaplayer播放自己的闹钟和来电铃声。十分感谢这万能的网络,这里也和大家分享一下。         Uri alert = R
Android的OnClickListener的三种实现方式
第一种 在xml中指定onclick事件 &amp;lt;Button android:text=&quot;Button01&quot; android:id=&quot;@+id/Button01&quot; android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:onClick=&quot;Btn1OnClick&quot; /&amp;gt; 在
[Android] 使用广播接收器Braodcast Receiver 监听手机来电 去电 挂断的事
Braodcast Receiver顾名思义就是广播接收器,它和时间处理机制类似,但是事件处理机制是程序组件级别的(比如:按钮的单击事件),而广播事件处理机制是系统级别的。我们可以用Intent来启动一个组件,也可以用sendBroadcast()方法发起一个系统级别的事件广播来传递消息。我们同样可以在自己的应用程序中实现Broadcast Receiver来监听和响应广播的Intent。
Android N来电拦截
骚扰号码存放的URI BlockedNumberContract.BlockedNumbers.CONTENT_URI   存放号码的列 BlockedNumberContract.BlockedNumbers.COLUMN_ORIGINAL_NUMBER   ContentResolver contentResolver = getContext().getContentResolv
Android 5.1 Phone MT(来电)流程分析(应用层)
本文主要分析Android 接电话的流程,研究的代码是Android 5.1的,现在我们只关注应用层,以CDMA为例,GSM同理。一、显示来电的界面步骤1,2:在Framework层的最后,是由PhoneBase.java将来电通知传递到应用层的,如果想了解这段流程,请看《Android 5.1 Phone MT(来电)流程分析(Framework层) 》的步骤1~13。
android 来电亮屏log
02-06 15:27:43.260 2456 2456 I InCall : InCallPresenter - Phone switching state: NO_CALLS -&amp;gt; INCOMING 02-06 15:27:47.012 2456 2456 I InCall : InCallPresenter - Phone switching state: INCOMING...
安卓手机来电亮屏流程分析
来电亮屏流程分析 本文档是针对手机来电时候自主点亮屏幕这一流程的分析,很自然的就将其分为2个阶段,第一个是来电,第二个是点亮屏幕。 来电的流程: 来电消息是从RIL层接收到的,然后才开始传递上来。 AT      : RING                              AT      : AT AT      : RIL_URC_READER:RING         
安卓代替系统默认电话应用(Android 6.0+)与电话状态监听
Procrastinator's Brain Android 6.0 之后开始支持修改默认电话应用,刚好最近有个相关的需求,于是记录下自己探索之旅。 00 Android Telecom framework 从 API 21 开始,谷歌添加了 TelecomManager 用于提供对电话通讯状态的监听,而 API 23 之后,又开放了 Te...
Android电话来电流程源码分析
Android的Phone设计的相当复杂,只有了解了Phone的设计框架才能把握电话的拨号或来电流程,在Android电话拨打流程源码分析中已经分析介绍了电话拨打流程,这里介绍一下电话的来电流程。 要理解这节内容,首先要知道Android电话的层次设计 Framework层的RIL中的RILReceiver线程从rild服务进程中读取modem发送上来的来电消息等信息,通过消息注册-响
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 机器学习中如何处理大数据 机器学习处理大数据