`
wang_peng1
  • 浏览: 3954713 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

判断来电状态 确定号码:

 
阅读更多
public class MyPhoneStateListener extends PhoneStateListener {
   private String[] projection = new String[] {
            People._ID, People.NAME, People.NUMBER
    };
  public void onCallStateChanged(int state,String incomingNumber){
    switch(state)
    {
      case TelephonyManager.CALL_STATE_IDLE:
        Log.d("DEBUG", "IDLE");
      break;
      case TelephonyManager.CALL_STATE_OFFHOOK:
        if(!incomingNumber.equals("")){
          handleCall(incomingCall);
        }
      break;
     case TelephonyManager.CALL_STATE_RINGING:
        Log.d("DEBUG", "RINGING");
     break;
    }
  }
  public void handleCall(String incomingCall){
    Uri contactUri = Uri.withAppendedPath(Contacts.Phones.CONTENT_FILTER_URL,
                         incomingNumber);
    contactsCursor = context.getContentResolver().query(contactUri,
                       projection, null , null, People.NAME + " ASC");
    if(contactsCursor.moveToFirst()){
      int phoneNameIndex = contactsCursor.getColumnIndex(People.NAME);
      String phoneNameStr = contactsCursor.getString(phoneNameIndex);
      Log.d("DEBUG",phoneNameStr + " is calling");
    }else{
      Log.d("DEBUG","Not a contact");
    }
  }
}

如果要使用receive则:

<application>
  .....
  <receiver android:name=".ServiceReceiver">
    <intent-filter>
      <action android:name="android.intent.action.PHONE_STATE" />
    </intent-filter>
  </receiver>

public class ServiceReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
    MyPhoneStateListener phoneListener=new MyPhoneStateListener();
    TelephonyManager telephony = (TelephonyManager)
                     context.getSystemService(Context.TELEPHONY_SERVICE);
    telephony.listen(phoneListener,PhoneStateListener.LISTEN_CALL_STATE);
  }
}
</application>
<uses-permission android:name="android.permission.READ_PHONE_STATE">
</uses-permission>
分享到:
评论

相关推荐

    怎么判断MODEM是不是支持来电显示

    如果MODEM支持来电显示功能,它应该会返回确认信息,例如“OK”或者相关的状态代码。 例如: ```plaintext #CID=1 OK ``` 3. **模拟来电显示:** 为了进一步验证MODEM的来电显示功能,在另一部电话上拨打...

    鼎铭语音卡-获取来电显示-转发报警

    这个系统可能包括数据库存储来电记录、逻辑判断来确定是否报警以及与其他系统(如短信平台、邮件系统)的集成,以便多渠道发送报警信息。 5. **播放录音**:在转警成功后,系统会通过语音卡向主叫号码回拨并播放一...

    Android实现来电自动挂断并回复短信

    在这个回调中,我们可以判断当前的通话状态,如`TelephonyManager.CALL_STATE_RINGING`表示有来电。 3. **挂断来电**: 当检测到来电时,我们可以通过反射调用`ITelephony`服务的`endCall()`方法来挂断电话。`...

    TD事件判断标准文档

    **信号**:通过`RRCConnectionRequest`(Cause: Terminating Conversational Call)并伴随`PagingType1`或`PagingType2`信息,随后`RRCCONNECTIONsetup`的出现确认来电尝试。 ### Outgoing Call Attempt **定义**...

    2FSK解调来电显示信号及Caller ID解码

    5. **频率检测**:通过比较连续样本的频率,确定信号是在高频还是低频状态,从而判断传输的比特值。 6. **解码**:根据检测到的频率变化,将比特流还原成原始数据。 Caller ID解码是接收到的2FSK信号解析出电话...

    利用AT89C51单片机实现自动寻呼

    1. **与来电显示话机显示屏的接口**:用于接收主叫号码。 2. **与话机扬声器的接口**:用于接收寻呼机号码。 3. **与话机键盘和话筒的接口**:用于控制摘挂机及发出证实音。 4. **与寻呼台服务器的RS232串行口接口**...

    gtm900推荐流程

    11. **来电号码显示功能**:发送`AT+CLIP=1`启用来电号码显示功能。 12. **短信接收机制设置**:发送`AT+CNMI=2,1,0,0,0`设置短信接收上报机制。 13. **文本模式设置**:发送`AT+CMGF=0`设置文本模式。 以上步骤...

    安卓号码归属地获取模块

    - 归属地查询是通过手机号码来确定该号码所属的运营商(例如中国移动、中国联通、中国电信)以及其所在的省份和城市。 - 这通常涉及到与数据库的交互,数据库中存储了各种手机号码段与对应的信息。 - 实现方式...

    Verizon One 产品用户手册(英文)

    - **手持话机充电**:解释了如何进行充电以及如何判断电池状态。 - **开机**:简单介绍手持话机的开机方式。 - **使用腰夹**:展示了如何利用腰夹固定手持话机,方便携带。 #### 八、手持话机注册至基站单元 - **...

    深入解析Android phone模块

    1. **状态监测**:通过监听通话状态的变化来判断何时需要更新图标。 2. **UI更新**:当通话状态发生改变时,对应的UI组件会自动更新显示状态。 3. **状态映射**:每个通话状态对应不同的图标,通过状态码映射到特定...

    家装公司各种常用表格.doc

    - **是否客户**:判断来电者是否为潜在客户。 - **来电人**:来电者的姓名。 - **来电事件**:来电的主要目的或内容。 - **是否反映至相关人员**:是否将问题反馈给了相应的负责人处理。 - **是否解决**:问题是否...

    android电话、短信黑白名单拦截、电话录音

    - **监听电话状态**:使用`TelephonyManager`类的`listen()`方法监听电话状态,如`PhoneStateListener.LISTEN_CALL_STATE`,当电话状态发生变化时,如来电,我们可以获取到电话号码并进行判断。 - **拦截逻辑**:...

    GPRS模块开发指南 wavecom q26 wismo228

    4. AT+CPAS:返回设备活动状态,判断模块是否在线。 5. AT+CMEE:控制错误报告方式,可以选择输出详细错误信息。 6. AT+CKPD:模拟小键盘输入,用于执行特定命令。 7. AT+CCLK:管理时钟,设置或读取当前日期和时间...

    gps定位器的常见故障排除归纳.pdf

    根据指示灯的状态,可以判断设备的运行状况并采取相应措施。 12. **IMEI问题**:如果登录系统时提示IMEI号不存在,应联系经销商将IMEI号添加至系统账户。 13. **流量卡问题**:流量卡欠费或过期会导致服务中断,...

    koodoo参考手册.

    - **应用场景**:确定字符串或数组的大小。 ##### 2.16 得到数组成员:GetMapItem(m,index,key,value) - **功能**:从数组中获取指定键的值。 - **参数**:`m` - 数组;`index` - 键;`key` - 存储键的变量;`value...

    中国联通移动网用户相关数据参考手册

    2. **Barring of outgoing calls, Barring of incoming calls**:禁止拨出和接收来电,根据用户状态或运营商策略实施。 3. **Barring of roaming**:禁止漫游,限制用户在国外网络的使用。 4. **Barring of ...

    反电信诈骗知识测试题.docx

    6. **陌生来电识别**:对于自称熟人但无法提供明确身份信息的来电,尤其是涉及金钱请求的,应警惕挂断,并通过其他方式验证。 7. **银行信息处理**:银行通常不会通过短信发送链接要求修改密码,遇到这种情况,应...

    fo71cn说明书

    - **状态报告**: 打印设备当前的状态报告。 - **日志记录**: 打印发送和接收的历史记录。 - **维护信息**: 提供维护所需的详细信息。 #### 十、设备维护 - **定期清洁**: 定期清洁机器表面和内部。 - **纸张更换**:...

Global site tag (gtag.js) - Google Analytics