public class PhoneStatReceiver extends BroadcastReceiver {
boolean mIsComingCall = false;
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG,"onReceive():intent.getAction()="+intent.getAction());
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
String phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Log.i(TAG, "call OUT:" + phoneNumber);
} else if (intent.getAction().equals("android.intent.action.PHONE_STATE")) {
if(mGridLayer != null){
boolean mIsSlide = mGridLayer.inSlideShowMode();
Log.d(TAG,"onReceive():mIsSlide="+mIsSlide);
if(!mIsSlide){
return;
}
}else{
return;
}
TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
switch (tm.getCallState()) {
case TelephonyManager.CALL_STATE_RINGING:
mIsComingCall = true;
String incoming_number = intent.getStringExtra("incoming_number");
Log.i(TAG, "RINGING :" + incoming_number);
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
if (mIsComingCall) {
Log.i(TAG, "incoming ACCEPT");
mHasPhoneCame = true;
}
break;
case TelephonyManager.CALL_STATE_IDLE:
if (mIsComingCall) {
Log.i(TAG, "incoming IDLE");
mHasPhoneCame = true;
}
break;
}
} else {
Log.i(TAG, "onreceive else");
}
}
}