android 手机来电监听

在application里实现对手机来电话进行监听

在需要监听的地方添加

MyPhoneStateListener phoneListener = new MyPhoneStateListener();
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
telephonyManager.listen(phoneListener, PhoneStateListener.LISTEN_CALL_STATE);


在activity里添加内部类

private class MyPhoneStateListener extends PhoneStateListener
{
public void onCallStateChanged(int state, String incomingNumber)
{
Log.e("PhoneCallState", "state " + state);
Log.e("PhoneCallState", "Incoming number " + incomingNumber); // incomingNumber就是来电号码
if (state == TelephonyManager.CALL_STATE_RINGING && incomingNumber.length() > 0)//方法体里为具体想做的事情。
{
byte[] buffer;
XmlOneDataModel incommingNum = new XmlOneDataModel();
List<XmlOneDataModel> modelList = new ArrayList<XmlOneDataModel>();

incommingNum.setData(incomingNumber);
modelList.add(incommingNum);

try
{
XmlOneDataModel.responseStyle = GlobalConstantValue.GSRQST_SEND_INCOMING_NUM_TO_STB;
buffer = xParser.serialize(modelList).getBytes("UTF-8");
GsSendSocket.sendSocketToStb(buffer, tcpSocket, 0, buffer.length, XmlOneDataModel.responseStyle);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
mTimeMark = timeNow;
}
}
}


这个实现需要加权限,在AndroidManifest.xml里添加

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值