android做到监听来电,和监听去电
来源:互联网 发布:深圳华强北现状知乎 编辑:程序博客网 时间:2024/05/29 06:45
1 监听来电不用注册广播接收者,只需自定义一个监听类继承PhoneStateListener
代码如下
首先要添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
private TelephonyManager tm;
private MyListener listener;
tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
listener = new MyListener();
tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);// 监听来电的状态
class MyListener extends PhoneStateListener {
//继承PhoneStateListener可以做到监听来电,要做到监听打电话,则需重新定义一个广播接受者@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
/*int state,电话的状态
String incomingNumber来电号码
*/
case TelephonyManager.CALL_STATE_RINGING:// 电话正在打电话
/*下面逻辑是我显示来电号码在桌面上,自定义了一个桌面吐司*/
String address = AddresDao.getAddress(incomingNumber);//
showToast(address);
break;
case TelephonyManager.CALL_STATE_IDLE:// // 电话闲置状态
if (mWM != null && view != null) {
mWM.removeView(view);//// 从window中移除view
view = null;
}
break;
default:
break;
}
super.onCallStateChanged(state, incomingNumber);
}
}
2 监听去电则需要注册一个广播
配置文件中
<receiver android:name=".receiver.OutCallReceiver" >
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
需要监听具体意图和权限;
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
java代码中
private OutCallReceiver receiver;
receiver = new OutCallReceiver();
IntentFilter filter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL);
registerReceiver(receiver, filter);// 动态注册广播
IntentFilter filter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL);
registerReceiver(receiver, filter);// 动态注册广播
/*定义一个广播接收者*/
class OutCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String number = getResultData();// 获取去电电话号码
String address = AddresDao.getAddress(number);
// Toast.makeText(context, address, Toast.LENGTH_LONG).show();
showToast(address);
}
}
@Override
public void onReceive(Context context, Intent intent) {
String number = getResultData();// 获取去电电话号码
String address = AddresDao.getAddress(number);
// Toast.makeText(context, address, Toast.LENGTH_LONG).show();
showToast(address);
}
}
0 0
- android做到监听来电,和监听去电
- Android来电监听和去电监听
- Android来电监听和去电监听
- Android来电监听和去电监听
- Android来电监听和去电监听
- android-轻松监听来电和去电
- [AndroidTips]Android监听来电和去电
- android-轻松监听来电和去电
- Android监听来电和去电
- android-轻松监听来电和去电
- android-轻松监听来电和去电
- Android监听来电和去电
- Android 监听手机来电和去电
- Android监听来电和去电
- android 监听来电 和 去电
- android 来电去电监听
- Android来电、去电监听
- android 监听来电去电
- php去除空白
- 洛谷五月赛
- 最长上升子序列LIS(Longest Increasing Subsequence)
- 用idea写java web ,jsp被编译出的servlet被放在哪里
- JVM最大线程数
- android做到监听来电,和监听去电
- 中英文对照 —— 计算机编程
- C++学习:string构造函数的bug
- A Simple LD_PRELOAD Tutorial
- [Android TV 按键响应]listview的textview跑马灯在鼠标控制下失效的问题
- SlidingMenu 常用属性
- XMLHttpRequest的属性
- Linux 内核模块简介及常用命令
- POJ 3261 后缀数组