Can a MIDlet determine the telephone number of the mobile phone hosting it?
Not in any portable way, because the MIDP specification is not limited to mobile phones. The MIDP2.0 API provides a method MIDlet.platformRequest() that a MIDlet can call to ask the runtime system for platform specific data. It is envisaged that telephone details will be made available this way. Of course, this is still vendor-specific, but at least does not require the use of vendor-specific classes.