andriod电话状态监听-来电去电 - 没哈啊

标签: andriod 电话 状态 | 发表时间:2015-02-27 15:09 | 作者:没哈啊
出处:

Android在电话状态改变是会发送action为android.intent.action.PHONE_STATE的广播,

而拨打电话时会发送action为 android.intent.action.NEW_OUTGOING_CALL的广播

android 在音乐播放器里面对电话状态的监听,比如:正在播放音乐,来电(去电)则暂停音乐,挂断电话则继续播放音乐。

一、电话活动监听广播

public class PhoneReceiver extends BroadcastReceiver {

  private Context mContext;
  private String mAction;
  private Intent mIntent;

  public PhoneReceiver(){}
  public PhoneReceiver(Context context){
    super();
    mContext = context;
  }

  @Override
  public void onReceive(Context context, Intent intent) {
    mAction = intent.getAction();
    if(mAction.equals(Intent.ACTION_NEW_OUTGOING_CALL)){
    //去电
      mIntent = new Intent();
      mIntent.setAction(BroadcastFlag.MUSIC_STOP);
      mContext.sendBroadcast(mIntent);
    }else{
      //来电
      TelephonyManager manager = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
      manager.listen(stateListener, PhoneStateListener.LISTEN_CALL_STATE);
    }
  }

  PhoneStateListener stateListener = new PhoneStateListener(){

    public void onCallStateChanged(int state, String incomingNumber) {
      super.onCallStateChanged(state, incomingNumber);
      switch(state){
        case TelephonyManager.CALL_STATE_IDLE:
          //挂断
          mIntent = new Intent();
          mIntent.setAction(BroadcastFlag.MUSIC_START);
          mContext.sendBroadcast(mIntent);
        break;
        case TelephonyManager.CALL_STATE_OFFHOOK:
          //接听
        case TelephonyManager.CALL_STATE_RINGING:
          //响铃
          mIntent = new Intent();
          mIntent.setAction(BroadcastFlag.MUSIC_STOP);
          mContext.sendBroadcast(mIntent);
        break;
      }
    };
  };
}

二、在音乐播放服务(MusicPlayService)中注册广播

 

三、在AndroidManifest.xml文件添加权限

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

 

OK!

 


本文链接: andriod电话状态监听-来电去电,转载请注明。

相关 [andriod 电话 状态] 推荐:

andriod电话状态监听-来电去电 - 没哈啊

- - 博客园_首页
Android在电话状态改变是会发送action为android.intent.action.PHONE_STATE的广播,. 而拨打电话时会发送action为 android.intent.action.NEW_OUTGOING_CALL的广播. android 在音乐播放器里面对电话状态的监听,比如:正在播放音乐,来电(去电)则暂停音乐,挂断电话则继续播放音乐.

[视频]CyanogenMod for TouchPad Andriod 2.3 下载 + 测试

- kid7 - cnBeta.COM
其实这个包的原型很早就有了,CM团队为了尽善尽美,所以推了这么久下面我们来看一下怎么安装到我们亲爱的小TP上面吧~.

iOS 开发笔记-andriod/java/iOS三方AES通用加密 - jiangys

- - 博客园_首页
AES在线加解密验证工具:  http://www.seacha.com/tools/aes.html. AES加密有多种算法模式,下面提供两套模式的可用源码. 将数据进行Base64解码. 一、CBC(Cipher Block Chaining,加密块链)模式. 是一种循环模式,前一个分组的密文和当前分组的明文异或操作后再加密,这样做的目的是增强破解难度..

谷歌硬件计划引发质疑,Andriod联盟面临松动

- - ITeye资讯频道
导语:国外媒体今天撰文称,谷歌收购摩托罗拉移动最初看来似乎只是为了获取专利, 但近期的迹象显示,该公司还准备全力发展硬件业务. 然而,如何同时维持与合作伙伴的关系,并保持原有的利润率将给谷歌带来巨大的挑战. 为了 收购风光不再的摩托罗拉移动,谷歌付出了125亿美元,这也成为该公司历史上规模最大的一起收购.

【PW晨报】Firefox OS正式发布,惠普推出首个Andriod平板

- - PingWest
1.Firefox OS正式发布. 在今天的MWC大会上,Firefox OS正式推出,这对于意图打造基于Web的移动操作系统的Mozilla来说是非常重要的一步. 同时,Mozilla还将其合作伙伴高通、 西班牙运营商Telefonica等带到了巴塞罗那. 在Mozilla举行的发布会上,其宣布了合作厂商,包括华为、中兴、阿卡特尔以及LG,并且搭载Firefox OS的中兴手机将在今年年中,与运营商Telefonica合作,在巴西、哥伦比亚、西班牙以及委内瑞拉发售.

对于阿里宣传的该定制手机并不是改版Andriod系统,而是自主研发...

- kid7 - cnBeta.com精彩优秀评论
对于阿里宣传的该定制手机并不是改版Andriod系统,而是自主研发系统. 业内分析人士表示,阿里云手机是很好的兼容Android平台,但从底层技术来看,该系统还是围绕Andriod平台二次开发. 语文老师死的早,还是计算机老师死的早. 来自湖南省株洲市的匿名人士对新闻:《阿里云手机真机曝光 7月底将正式发布》的评论.

TCP 状态变化

- - 互联网 - ITeye博客
关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况. 前者是指有本地主机主动发起的关闭;而后者则是指本地主机检测到远程主机发起关闭之后,作出回应,从而关闭整个连接. 将关闭部分的状态转移摘出来,就得到了下图:. 通过图上,我们来分析,什么情况下,连接处于CLOSE_WAIT状态呢.

“学习之人” 的状态

- iaotin - 小石的民歌笔记
今天,我人生的故事里发生了一节维_吾_尔语课. 我的老师叫Akram,一位来自吐_鲁_番的朋友. Akram让我想起了做事踏实认真的高博士. 我虽之前学过奥_斯曼土_耳_其语(尽管只是皮毛),但是那毕竟是文献语言,少了些存在感. 学习一种活脱脱的语言是很快乐的事情,好久没体验到这种快乐了. 关于学习的目的,尽管每次我都要和别人解释为“为未来的学术研究做准备”,但是我心里清楚:我不知道何时会让这些东西变得 “有用” ,不知道何时会给我所谓的 “力量”.

HTML5 在线状态检测

- - HTML5研究小组
如果 Web 应用程序仅仅是一些静态页面的组合,那么通过 cache manifest 缓存资源文件以后,就可以支持离线访问了. 但是随着互联网的发展,特别是 Web2.0 概念流行以来,用户的提交的数据渐渐成为互联网的主流. 那么在开发支持离线的 Web 应用时,就不能仅仅满足于静态页面的展现,还必需考虑如何让用户在离线状态下也可以操作数据.

禁用状态二三事

- - 腾讯CDC
  禁用,顾名思义,代表不可用的意思. 有一个禁用,就一定对应着一个可用. 不论是表单,还是复杂性管理界面,抑或是分步引导,这些场景中都有可能出现禁用状态,而如何合理运用禁用状态,让它成为体验的加分项而不是减分项,正是设计师要不断思考、深入实践的. 这里抛一些砖出来,希望和大家一起探讨.   “这个不可点的按钮放在这里很鸡肋,我们是不是可以考虑去掉.