监听手机的通话状态,是空闲还是正在通话中:
public class PhoneStateListenerActivity extends Activity {
private TextView mTextView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.phone_state_listener);
Log.i("Lowry","==============activity on create");
mTextView = (TextView) findViewById(R.id.phont_state_textView);
ExPhoneCallListener exp = new ExPhoneCallListener();
TelephonyManager tpm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
tpm.listen(exp, PhoneStateListener.LISTEN_CALL_STATE);
Log.i("Lowry","==============activity on create2");
}
public class ExPhoneCallListener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
Log.i("Lowry","==============Call stata changed----"+state+"-----"+incomingNumber);
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
mTextView.setText("空闲");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
mTextView.setText("接起电话");
break;
case TelephonyManager.CALL_STATE_RINGING:
getContactPeople(incomingNumber);
break;
default:
break;
}
super.onCallStateChanged(state, incomingNumber);
}
}
private void getContactPeople(String incomingNumber){
mTextView.setTextColor(R.drawable.white);
ContentResolver contentResolver = getContentResolver();
Cursor cursor = null;
String[] projection = new String[]{Contacts.People._ID,Contacts.People.NAME,Contacts.People.NUMBER};
cursor = contentResolver.query(Contacts.People.CONTENT_URI,
projection, Contacts.People.NUMBER+"=?", new String[]{incomingNumber},
Contacts.People.DEFAULT_SORT_ORDER);
Log.i("Lowry", "++++++++++++++++++++"+cursor.getCount());
if(cursor.getCount()==0){
mTextView.setText("Unknown Number:"+incomingNumber);
}
else if(cursor.getCount()>0){
cursor.moveToFirst();
String name = cursor.getString(1);
mTextView.setText(name+"====="+incomingNumber);
}
}
}
通过setSystemService()取得TelePhonyManager对象,再向TelephonyManager对象注册PhoneCallListener,注册时,传入PhoneCallListener类以及要倾听的事件名称,本应用所聆听的是电话状态,所以聆听事件要带入PhoneStateListener.LISTEN_CALL_STATE
得到电话状态并在mTextView中做显示,可以直观的看到当前的电话状态。
分享到:
相关推荐
主要介绍了Android广播接实现监听电话状态(电话的状态,拦截) 的相关资料,需要的朋友可以参考下
Android中监听电话状态.zip
Android中监听电话状态.rar
Android程序研发源码Android中监听电话状态.zip
主要介绍了Android实现监听电话呼叫状态的方法,涉及Android权限控制及电话状态监听的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
Android应用源码开发Demo,主要用于毕业设计学习。
应用程序可以注册listener来监听电话状态的改变。我们不能对TelephonyManager进行实例化,只能通过获取服务的形式: Context.getSystemService(Context.TELEPHONY_SERVICE); 注意:对手机的某些信息进行读取是需要...
如下代码是监听电话的状态,代码简单不做介绍直接看代码: 代码如下: private boolean mResumeAfterCall = false; private PhoneStateListener mPhoneStateListener = new PhoneStateListener() { @Override ...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
Android应用源码开发Demo,主要用于毕业设计学习。
android应用源码,安卓应用源码下载,android游戏源码下载,android游戏源代码,安卓游戏代码,android软件源代码,安卓程序源代码下载,安卓软件源码,android源码下载,安卓源码下载,安卓源代码,android软件源代码下载.
主要介绍了iOS CoreTelephony 实现监听通话状态 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
另外为了保护隐私项目监控了发送短信、读取联系人数据、读取通话记录、获取您当前位置、获得IMEI号码、获得ROOT权限、监听来电状态、读取短消息内容等8项敏感权限的监控并且记录在本地SQLite数据库中,项目需要ROOT...
Android中监听电话状态.rar Android之GPS定位.zip Android之Wifi学习教程.rar Android之用PopupWindow实现弹出菜单.rar android写的google map api 应用.rar android在wifi下手机与电脑的socket通信.rar Android应用...
本文实例讲述了Android监听来电和去电的实现方法。分享给大家供大家参考,具体如下: 要监听android打电话和接电话,只需下面2步骤 第一步,写一个Receiver继承自BroadcastReceiver import android.app.Service; ...