在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"/>