I have a problem writing application for android phone. I need my app to reinitialize all data from SIM card onto a phone - so it would be like a restart without a restart of the phone itself.
I know that going to plane mode and back does not help - it has to be like the real restart. How can I achive it from the app?
Not sure this is the best way, but you can always use the SIM Toolkit and proactive commands. According to the GSM specification
REFRESH, which requests the ME to carry out a SIM initialization according to GSM 11.11 subclause 11.2.1, and/or advises the ME that the contents or structure of EFs on the SIM have been changed. The command also makes it possible to restart a card session by resetting the SIM.
Description of the REFRESH command, mode SIM Reset:
SIM Reset. This mode causes the ME to run the GSM session termination procedure and to deactivate the SIM in accordance with GSM 11.11 [20]. Subsequently, the ME activates the SIM again and starts a new card session. In case of a 3 Volt technology ME, the ME shall restart the SIM with the same supply voltage as in the previous session, if the ME can ensure that the SIM has not been changed in between. Otherwise, the ME shall perform the supply voltage switching in accordance with GSM 11.12 [21]. The SIM Reset mode is used when a SIM application requires ATR or complete SIM initialization procedures to be performed.
However, this means you have to have a custom SIM Toolkit applet loaded on the SIM card and you have to use this applet to trigger the proactive command. I don't know if this is a possible option for you, because you didn't provide enough details.