Not to my knowledge. Normally, the AMS is setup such that when a call comes in when a MIDlet is running, the AMS will automatically pause the MIDlet and let the default phone application to take the call. So, essentially, the incoming phone call is outside the AMS' control. That said, each phone may have a hook to associate a program to handle phone calls, but it's not within the Java spec though.
It is somewhat similar to asking if a Java program can be run when your Windows OS boots up. You can, but that will be a control within Windows and not really within the JDK or even your app.
In short, you can setup a MIDP app to initiate a call, but not answer (at least not without using the phone-specific API or functionality). For all other types of inbound connections, you can use the PushRegistry class.
I don't know, but to my knowledge, iPhone and Android (Google phone) have their own SDK and are not J2ME compliant. You might have to look into their individual SDKs to see what they offer. If they do have something, it would be specific to iPhone/Andriod and won't work on other J2ME phones.