现在的位置: 首页 > 综合 > 正文

监听手机来电 监听手机来电

2017年12月12日 ⁄ 综合 ⁄ 共 1998字 ⁄ 字号 评论关闭
 

监听手机来电

分类: Android 122人阅读 评论(0) 收藏 举报

上文通过TelephonyManager获取了手机网络、SIM卡的相关信息,在本文中通过监听TelephonyManager的通话状态来监听手机的所有来电,代码如下:

[java] view
plain
copy

  1. package com.guyun.activity;  
  2.   
  3. import com.guyun.listenphonestate.R;  
  4.   
  5. import android.app.Activity;  
  6. import android.os.Bundle;  
  7. import android.telephony.PhoneStateListener;  
  8. import android.telephony.TelephonyManager;  
  9. import android.widget.Toast;  
  10.   
  11. public class PhoneStateActivity extends Activity {  
  12.     @Override  
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.activity_main);  
  16.         // 获取系统服务(电话管理器)  
  17.         TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);  
  18.         // 创建电话状态改变的监听器  
  19.         PhoneStateListener phoneListener = new PhoneStateListener() {  
  20.             // 当来电状态改变时触发  
  21.             @Override  
  22.             public void onCallStateChanged(int state, String incomingNumber) {  
  23.                 super.onCallStateChanged(state, incomingNumber);  
  24.                 switch (state) {  
  25.                 // 无任何状态  
  26.                 case TelephonyManager.CALL_STATE_IDLE:  
  27.                     Toast.makeText(PhoneStateActivity.this"无任何状态",  
  28.                             Toast.LENGTH_LONG).show();  
  29.                     break;  
  30.                 // 接通电话状态  
  31.                 case TelephonyManager.CALL_STATE_OFFHOOK:  
  32.                     Toast.makeText(PhoneStateActivity.this"电话已接通",  
  33.                             Toast.LENGTH_LONG).show();  
  34.                     break;  
  35.                 // 来电状态  
  36.                 case TelephonyManager.CALL_STATE_RINGING:  
  37.                     Toast.makeText(PhoneStateActivity.this,  
  38.                             "来电显示:" + incomingNumber, Toast.LENGTH_LONG).show();  
  39.                     break;  
  40.                 }  
  41.             }  
  42.         };  
  43.         // 为TelephonyManager注册监听器  
  44.         tm.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);  
  45.     }  
  46. }  

抱歉!评论已关闭.