title: Format SD card in Android
body: <p>Things should be simple, but as most of the time, in Android, aren't. I need to format the SD card if the user selects the option in my app. Don't ask me why I need to do this if it's already in the OS... not practical but it's a requirement that I need to implement. As you may know, there is an option in <strong>Settings \ Storage \ Erase SD Card</strong>. I took a look at the froyo source code and it's something like:</p>
  
  <pre><code>final IMountService service =
           IMountService.Stub.asInterface(ServiceManager.getService("mount"));
          if (service != null) {
              new Thread() {
                  public void run() {
                  try {
                          service.formatVolume(Environment.getExternalStorageDirectory().toString());
                      } catch (Exception e) {
                          // Intentionally blank - there's nothing we can do here
                      Log.w("MediaFormat", "Unable to invoke IMountService.formatMedia()");
                      }
                  }
              }.start();
          } else {
              Log.w("MediaFormat", "Unable to locate IMountService");
          }
  </code></pre>
  
  <p>It uses <code>android.os.storage.IMountService</code> and <code>android.os.ServiceManager</code> and I don't seem to have access to it. So, as I see it I could recursively search every file and delete it but that would be "not on my taste"... or I could start the screen from Erase SD card to the user. </p>
  
  <p>Any help is more then welcome, as I am stuck. </p>