Все должно быть просто, но, как правило, в Android это не так.Мне нужно отформатировать SD-карту, если пользователь выбирает опцию в моем приложении.Не спрашивайте меня, зачем мне это делать, если оно уже есть в ОС ... не практично, но это требование, которое я должен выполнить.Как вы, возможно, знаете, есть опция Настройки \ Хранение \ Удалить SD-карту .Я взглянул на исходный код froyo, и он выглядит примерно так:
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");
}
Он использует android.os.storage.IMountService
и android.os.ServiceManager
, и у меня нет доступа к нему.Итак, как я вижу, я могу рекурсивно искать каждый файл и удалять его, но это было бы «не в моем вкусе» ... или я мог запустить экран с Erase SD card для пользователя.
Любая помощь более чем приветствуется, так как я застрял.