3

在我的应用程序中,用户可以下载不同的声音文件。我为此使用了 downloadManager,这里一切正常。

String url = localList.get(position).guid;
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription(localList.get(position).title);
request.setTitle("Downloading Podcast");

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    request.setNotificationVisibility(DownloadManager.Request.
    VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}


request.setDestinationInExternalPublicDir("/MyAudio/",
localList.get(position).title + ".mp3");

DownloadManager manager = (DownloadManager)
v.getContext().getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);

问题是,当我尝试使用 file.list 或 file.listfiles 显示目录中的所有文件时,它返回 NULL。

File f = new File("/MyAudio/");
File file[] = f.listFiles();
String filename[] = f.list();

我尝试了很多东西,比如更改文件夹名称和位置,使用 request.setDestinationInExternalFileDir ,写入和读取文件夹

File sdCard = Environment.getExternalStorageDirectory();
String folder = sdCard.getAbsolutePath() + "/MyAudio" ;

但到目前为止没有任何帮助。我总是得到 file.listFiles 返回的 NULL。

我使用这些权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

这应该涵盖我需要的一切。

最后一点:我在 arrayadapter 类中编写文件并尝试从我的 mainactivity 中读取文件夹,我在手机上看到了文件夹和文件,所以我确定它们存在。

提前谢谢

4

0 回答 0