spe*_*ane 15 java android usb-mass-storage
在许多Android设备上,当设备插入计算机的USB端口或甚至某些USB充电设备时,手机将进入USB存储模式.当设备处于此模式时,Android应用程序无法访问SD卡.有没有办法(1)检测设备何时处于此模式,(2)以编程方式关闭USB存储,至少暂时,所以我的Android应用程序可以访问SD卡?
我已经看到其他SO问题并且答案还不够(例如,Android:检测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
}
Run Code Online (Sandbox Code Playgroud)
A2:您可以通过调用以下命令强制关闭USB大容量存储连接:
MountService.setUsbMassStorageEnabled(false);
Run Code Online (Sandbox Code Playgroud)
要么
StorageManager.disableUsbMassStorage();
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这两个API都不公开?!
您可以检测到它(您有链接),但是,据我所知,您无法安装/卸载 USB 存储,至少不能使用公共 SDK API。在 Honeycomb(3.0 及更高版本)中,不再使用 USB 大容量存储来访问设备的外部存储,因此您的应用程序和计算机可以同时访问它。