gpt4 book ai didi

java - 如何使 Environment.getExternalStoragePublicDirectory() 创建到 SD 卡的路径,而不是到 emulated/0 这是内部存储器?

转载 作者:搜寻专家 更新时间:2023-11-01 09:25:03 26 4
gpt4 key购买 nike

我创建了一个文件夹,并使用 Environment.getExternalStoragePublicDirectory() 将文件放入该文件夹。但它正在创建一个文件夹路径,指向一个名为 /storage/emulated/0 的地方。我在 SD 卡上搜索我的文件名,但有。所以我确定 /storage/emulated/0 是放在手机内存中的。但是根据Android Doc ,外部存储器是指SD卡。

比如截图是保存在SD卡上的,我可以在安卓“下载”App->SD卡->图片->截图中找到:

enter image description here .

这是我的代码,我创建文件夹路径的方式,然后通过附加照片存储时间为单张照片创建唯一的文件路径:

public File getPublicDir() {
// Get the directory for the user's public pictures directory.
File file = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_DCIM),"collage");
if (!file.mkdirs()) {
Log.e("PUBLIC DIRECTORY", "Directory not created");
}
return file;
}

try{
Calendar calendar= Calendar.getInstance();
SimpleDateFormat sdformat=new SimpleDateFormat("MM_dd_yyyy_HH:mm:ss");
String DateString=sdformat.format(calendar.getTime());
file=new File(getPublicDir(),"mySnapshot_"+DateString+".png");
FileOutputStream fos=new FileOutputStream(file);
Boolean success=snapshot.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.close();
Toast.makeText(MainActivity.this,"Compress?
:"+file,Toast.LENGTH_SHORT).show();
}catch(IOException e){
e.printStackTrace();
Toast.makeText(MainActivity.this,"NOT SAVED",Toast.LENGTH_SHORT).show();
}

编辑:

我尝试 String secStore = System.getenv("SECONDARY_STORAGE"); 但是当我运行应用程序时 secStore 为空。这是来自 this Stack answer .

我尝试手动输入指向 SD 卡的文件夹地址(在上图中):

String dir="/document/3464-6161:collage";
file=new File(dir,"mySnapshot_"+DateString+".png");

但它给了我这个错误:

enter image description here

最佳答案

您可以使用 getExternalStorageDirectory() 访问外部 SD 卡并提供Request permission对于 Manifest.permission.WRITE_EXTERNAL_STORAGE

或者,您可以使用 StorageManager.getStorageVolumes()了解设备中可用的可用卷。它将返回有关 StorageVolume 的信息比如 SD 卡和 USB。

注意:它可从 API 24 获得。

使用它您可以访问您需要的文件路径。

关于java - 如何使 Environment.getExternalStoragePublicDirectory() 创建到 SD 卡的路径,而不是到 emulated/0 这是内部存储器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51327880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com