事情应该很简单,但在大多数情况下,在 Android 中并非如此。如果用户在我的应用程序中选择该选项,我需要格式化 SD 卡。如果它已经在操作系统中,不要问我为什么需要这样做......不切实际,但这是我需要实现的要求。您可能知道,在Settings \ Storage \ Erase SD Card中有一个选项。我查看了 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
我似乎无法访问它。因此,正如我所见,我可以递归地搜索每个文件并将其删除,但这“不合我的口味”......或者我可以从擦除 SD 卡开始屏幕给用户。
任何帮助都更受欢迎,因为我被困住了。