java - 以编程方式关闭 Android 设备上的 USB 存储

标签 java android usb-mass-storage

在许多 Android 设备上,当设备插入计算机的 USB 端口或什至在某些 USB 充电设备上时,手机会进入 USB 存储模式。当设备处于此模式时,android 应用程序无法访问 sdcard。有什么方法可以 (1) 检测设备何时处于此模式,以及 (2) 至少暂时以编程方式关闭 USB 存储,以便我的 Android 应用程序可以访问 SD 卡?

我看过其他 SO 问题,但答案并不充分 (例如,Android: Detecting USB)。

最佳答案

A1:如果Sd卡的当前状态是SHARED,说明它已经以MSC方式连接到PC,你可以这样检查:

String state = Environment.getExternalStorageState();
if (Environment.MEDIA_SHARED.equals(state)) {
    // Sd card has connected to PC in MSC mode
}

A2:你可以通过调用强制关闭usb mass storage连接:

MountService.setUsbMassStorageEnabled(false);

StorageManager.disableUsbMassStorage();

但不幸的是,这两个 API 都不可公开访问?!

关于java - 以编程方式关闭 Android 设备上的 USB 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7396757/

相关文章:

java.awt -- 当java输出图像到我的显示器(屏幕)时,输出到显示器卡的文件在哪里?

java - 类和类加载器

Java writer 输出中的第一个字符 (int) 错误

java - 在 Junit 测试用例中处理 MethodArgumentNotValidException?

linux - 如何在 USB 大容量存储模式下通过手机列出连接到 Linux 的 SD 卡的内容?

java - 显示错误 "Supertypes of the following classes cannot be resolved.",没有任何类列表

android - 用于 ListView 的 Kotlin setOnClickListener

java - 我如何通过触摸表面 View 来捕捉图像

linux - 将参数传递给 USB ioctl