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 からフォルダーを読み取ろうとすると、電話にフォルダーとファイルが表示されるので、それらが存在することを確認します。

事前にThx

4

0 に答える 0