我正在开发一个 Android 应用程序,需要查看用户存储了哪些图像。问题是,如果用户通过 USB 电缆安装了 SD 卡,我无法读取磁盘上的图像列表。
有谁知道有什么方法可以判断 USB 是否已安装,以便我可以弹出一条消息,通知用户它无法工作?
如果您尝试访问设备上的图像,最好的方法是使用MediaStore 内容提供商 http://developer.android.com/reference/android/provider/MediaStore.Images.Media.html。将其作为内容提供商 http://developer.android.com/guide/topics/providers/content-providers.html将允许您查询存在的图像,并绘制地图content://
设备上适当的文件路径的 URL。
如果您仍然需要访问 SD 卡,相机应用程序包含一个图像工具 http://android.git.kernel.org/?p=platform/packages/apps/Camera.git;a=blob;f=src/com/android/camera/ImageManager.java;h=073b8db811d1a010079c7a258a418aa90fae2326;hb=dafe31ead98304414f84f021bd0c155e62d833c2检查 SD 卡是否已安装的类如下:
static public boolean hasStorage(boolean requireWriteAccess) {
//TODO: After fix the bug, add "if (VERBOSE)" before logging errors.
String state = Environment.getExternalStorageState();
Log.v(TAG, "storage state is " + state);
if (Environment.MEDIA_MOUNTED.equals(state)) {
if (requireWriteAccess) {
boolean writable = checkFsWritable();
Log.v(TAG, "storage writable is " + writable);
return writable;
} else {
return true;
}
} else if (!requireWriteAccess && Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
return true;
}
return false;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)