Java 获取galaxy Notes上的内部目录路径
在我的应用程序中,我使用以下方法访问外部存储器(根据需要,它可以是内部存储器或SD卡的一部分),在我的Xperia V中,它返回内部存储器(不是SD卡)的路径 当我尝试在没有安装SD卡的galaxy Notes上运行应用程序时,我发现上面的方法没有返回存储路径(如果获得成功路径,应用程序应该保存一个文件)。那么我能知道有没有一种方法可以访问外部存储器(它没有安装SD卡)Java 获取galaxy Notes上的内部目录路径,java,android,android-external-storage,Java,Android,Android External Storage,在我的应用程序中,我使用以下方法访问外部存储器(根据需要,它可以是内部存储器或SD卡的一部分),在我的Xperia V中,它返回内部存储器(不是SD卡)的路径 当我尝试在没有安装SD卡的galaxy Notes上运行应用程序时,我发现上面的方法没有返回存储路径(如果获得成功路径,应用程序应该保存一个文件)。那么我能知道有没有一种方法可以访问外部存储器(它没有安装SD卡) 感谢您获取外部存储路径,请尝试以下操作 String root = Environment.getExternalStorag
感谢您获取外部存储路径,请尝试以下操作
String root = Environment.getExternalStorageDirectory().getPath();
它将重新运行外部存储的确切路径首先,您的应用程序必须具有写入外部存储的权限,它在清单文件中指定,请参见以下内容:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
要获取外部SD卡装载目录,只需更改:
if (Environment.getExternalStorageDirectory()
.getAbsolutePath().equals(path)) {
break;
}
致:
注意:此方法是针对其他设备的,我可以使用它,因为我知道我只针对具有额外内部存储的三星设备开发。如果您希望此操作适用于所有设备,则必须进行其他更改。“它返回内部存储的路径”-否,它返回到外部存储的路径。请阅读文档了解内部和外部存储的定义:我做了。它还说在某些设备中,内部存储的一部分映射为外部存储(来自内部存储的分区),我的Xperia V将外部存储映射为内部存储。似乎我也在这样做:/抱歉,但我试图尽可能描述。我想知道一种即使设备没有安装SD卡也能保存数据的方法。请使用
getExternalFilesDir()
,或getExternalCacheDir()
,或Environment.getExternalStorageDirectory()
(到目前为止,关于您的问题的一个现有答案引用了后者)。
File getRecordingDirectory()
{
File recordingDir = null;
// get the state of external storage
String externalStorageState = Environment.getExternalStorageState();
if(externalStorageState.equals(Environment.MEDIA_MOUNTED))
{
File extDir =
Environment.getExternalStorageDirectory();
recordingDir = new File(extDir, "AudioRecorder");
if(!recordingDir.exists())
{
if(!recordingDir.mkdirs())
{
Log.e("RECORDER", "Unable to create Silent Recorder recordings directory.");
}
}
}
return recordingDir;
}
private String getInternalSDPath() {
File file = new File("/system/etc/vold.fstab");
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader(file);
} catch (FileNotFoundException e) {
}
String path = null;
try {
if (fr != null) {
br = new BufferedReader(fr);
String s = br.readLine();
while (s != null) {
if (s.startsWith("dev_mount")) {
String[] tokens = s.split("\\s");
path = tokens[2]; // mount_point
if (Environment.getExternalStorageDirectory()
.getAbsolutePath().equals(path)) {
break;
}
}
s = br.readLine();
}
}
} catch (IOException e) {
} finally {
try {
if (fr != null) {
fr.close();
}
if (br != null) {
br.close();
}
} catch (IOException e) {
}
}
return path;
}
if (Environment.getExternalStorageDirectory()
.getAbsolutePath().equals(path)) {
break;
}
if (!Environment.getExternalStorageDirectory()
.getAbsolutePath().equals(path)) {
break;
}