Согласно документации разработчика Android, для приема вызова система Android обрабатывает входящий Sip CALL и транслирует намерение входящего вызова при получении вызова. Я вложил класс входящий вызов в основной класс и объявил получатель inisde AndroidManifest.xml, как показано ниже.
<receiver android:name=".MediaPresentationActivity$IncomingReceiver android:label="Call Receiver"/>
немного ниже ошибка
ошибка: IncomingReceiver не является абстрактным и не переопределяет абстрактный метод onReceive (Context, Intent) в BroadcastReceiver
тело основного класса, как показано ниже
public class MediaPresentationActivity extends Activity implements View.OnClickListener, View.OnTouchListener{
....................
public class IncomingReceiver extends BroadcastReceiver {
/**
* Name: onReceive
* Description: Process the incoming calls and answers it.
*/
@Override
public void onReceive(Context context, Intent intent) {
SipAudioCall incomingCall = null;
try {
SipAudioCall.Listener listener = new SipAudioCall.Listener() {
@Override
public void onRinging(SipAudioCall call, SipProfile caller) {
Log.e("call", "call incoming!");
}
};
VoipActivity va = (VoipActivity) context;
incomingCall = va.manager.takeAudioCall(intent, listener);
va.incomingCall(incomingCall);
} catch (Exception e) {
e.printStackTrace();
if (incomingCall != null) {
incomingCall.close();
}
}
}
}