У меня есть широковещательный приемник, подобный этому
public class PhoneCallStateReceiver extends BroadcastReceiver {
private static boolean incomingFlag = false;
private OnCallListener mListener;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
incomingFlag = false;
mListener.startCall();
} else {
TelephonyManager tm = (TelephonyManager) context.getSystemService(Service.TELEPHONY_SERVICE);
switch (tm.getCallState()) {
case TelephonyManager.CALL_STATE_RINGING:
mListener.startCall();
incomingFlag = true;
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
if (incomingFlag) {
mListener.stopCall();
}
break;
case TelephonyManager.CALL_STATE_IDLE:
if (incomingFlag) {
mListener.stopCall();
Log.i(TAG, "incoming IDLE");
}
break;
}
}
}
public void setOnCallListener(OnCallListener listener) {
this.mListener = listener;
}
interface OnCallListener {
void startCall();
void stopCall();
}
}
в коде моей активности
mPhoneCallStateReceiver = new PhoneCallStateReceiver();
mPhoneCallStateReceiver.setOnCallListener(this);
registerReceiver(mPhoneCallStateReceiver, new IntentFilter("android.intent.action.PHONE_STATE"));
но когда приходит вызов метода класса mListener.startCall ();
и выйдет ошибка null Object в этих строках
Как я могу это исправить?