如何利用广播知道谁给你打电话以及电话状态 —— >>
首先先有一个类继承 BroadcastReceiver ,重写 onReceive 方法
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.util.Log;
/**
* Created by Administrator on 2017/7/11 0011.
*/
public class MyPhoneState extends BroadcastReceiver {
private TelephonyManager tm;
@Override
public void onReceive(Context context, Intent intent) {
if("android.intent.action.PHONE_STATE".equals(intent.getAction())){
//获取电话管理者
tm = (TelephonyManager) context.getSystemService(Context.TELECOM_SERVICE);
int state=tm.getCallState();
//获取电话号码
String number=intent.getStringExtra("incoming_number");
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
Log.i("test","有电话进来了:"+number);
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
Log.i("test","正在通话中:"+number);
break;
case TelephonyManager.CALL_STATE_IDLE:
Log.i("test","通话结束:"+number);
break;
}
}
}
}
添加读取电话状态的权限
本文介绍了一个通过创建BroadcastReceiver子类来监听电话状态及来电号码的方法。具体实现包括重写onReceive方法以响应电话状态变化,并根据不同状态输出相应的日志信息。
333

被折叠的 条评论
为什么被折叠?



