我正在开发一个可以下载.mp3文件的Android应用程序。 我为下载文件设置的路径是
"/sdcard/downloadedfile.mp3"
。它将转向SD卡
。 我想设置设备内部存储器的路径。因此,没有SD卡的设备应该默认为内部存储器。
任何人都可以为我找到解决方案..>?
答案 0 :(得分:1)
由于内部存储位置受权限保护,您提供的任何位置只能由您的应用程序访问。您可以这样做。
(1)在"外部"上提供文件路径。存储这就是您现在正在做的事情,完成后,复制到内部存储,然后删除外部存储上的文件。
(2)创建一个ContentProvider,DownloadManager可以写入并为其提供与此ContentProvider对应的URI。您实现的ContentProvider可以将文件写入内部存储,因为它将在您的应用程序的上下文中运行。
答案 1 :(得分:1)
以下是内部存储文件的代码:
String songname= "Song_Name" ;
File storageDir = Environment.getExternalStorageDirectory();
File.createTempFile(
songname, /* prefix */
".mp3", /* suffix */
storageDir /* directory */
);
并且忘记获得写入存储空间的许可。
答案 2 :(得分:1)
@Android开发人员培训生
我想你可以试试这个:
String fileName="name.mp3";
File folder = new File(Environment.getExternalStorageDirectory().getPath() + "/floderName/");
if (!folder.exists()) {
try {
folder.mkdirs();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Default Save Path Creation Error:" + folder);
}
}
File logFile = new File(folder, fileName);
if (!logFile.exists()) {
try {
logFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
System.out.println("Default Save Path Creation Error:" + logFile);
}
}
顺便说一下,
请不要忘记在android6.0上添加权限和运行时权限