我查看了一些线程,了解如何将照片保存到SD卡中。所有人都说使用“Environment.getExternalStorageDirectory()”来获取SD卡路径。我试过了,但是我得到了“/ storage / emulated / 0 /”这不是SD卡通过电话。任何人都可以帮助我吗?
我的设备是三星Galaxy J7和A5。
我的另一部分代码使用DowloadManager从url保存照片。我想知道如何设置它以保存到SD卡。
DownloadManager mgr = (DownloadManager) mPhotosViewActivity.getSystemService(Context.DOWNLOAD_SERVICE);
String uRl = imageUrl;
Uri downloadUri = Uri.parse(uRl);
DownloadManager.Request request = new DownloadManager.Request(
downloadUri);
request.setAllowedNetworkTypes(
DownloadManager.Request.NETWORK_WIFI
| DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false).setTitle("MyFolder")
.setDescription("Photo downloaded.")
.setDestinationInExternalPublicDir("/MyFolder", "test2.jpg");
最后我发现我正在使用Lollipop,我必须使用“存储访问框架”作为this link
答案 0 :(得分:1)
在Android 4.4及更高版本中,您可以在getExternalFilesDirs()
上使用getExternalCacheDirs()
,getExternalMediaDirs()
和Context
(注意:所有都是复数形式)。如果他们返回2个以上的条目,则第二个和后续条目将在可移动存储上。这些目录可以在没有任何权限的情况下读取和写入。
或者,在Android 4.4及更高版本中,您可以使用the Storage Access Framework来询问用户存储照片的位置。用户可以选择在可移动存储上选择位置。
否则,在Android 4.4及以上,you do not have direct access to the filesystem of removable storage。
Environment.getExternalStorageDirectory()
适用于external storage。通常,这不在可移动媒体上。
答案 1 :(得分:1)