android: downloadmanager 文件存放在哪里
android: downloadmanager where are the files stored
我是 android 中使用 downloadmanager 的新手。我正在使用 genymotion 模拟器。
我正在尝试使用 downloadmanager 下载 mp3 文件。我想知道下载后文件存放在哪里
Environment.getExternalStorageDirectory()
显示/storage/emulated/0。它是共享的 "external storage"
我也查了
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
它指向 /storage/emulated/0/Download
。 mp3 文件不在那里。
我还检查了/storage/emulated/0/Android/data/com.simha.sacredindaapp。 mp3 文件不存在。
我下载mp3文件的代码是:
DownloadManager downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
Uri uri = Uri.parse("http://audio.iskcondesiretree.com/02_-_ISKCON_Swamis/ISKCON_Swamis_-_R_to_Y/His_Holiness_Radhanath_Swami/Lectures/00_-_Year_wise/Devotional_Nectar_-_2016/2016-01-31_Various_-_Vrindavan_is_Perceived_by_Our_Consciousness-For_Ukraine_Devotees_-_Radhanath_Swami.mp3");
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setDescription("My Download").setTitle("Notification titile");
downloadManager.enqueue(request);
您需要设置目标目录。
DownloadManager downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
Uri uri = Uri.parse("http://audio.iskcondesiretree.com/02_-_ISKCON_Swamis/ISKCON_Swamis_-_R_to_Y/His_Holiness_Radhanath_Swami/Lectures/00_-_Year_wise/Devotional_Nectar_-_2016/2016-01-31_Various_-_Vrindavan_is_Perceived_by_Our_Consciousness-For_Ukraine_Devotees_-_Radhanath_Swami.mp3");
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setDescription("My Download").setTitle("Notification titile");
// change the name file and your current activity.
request.setDestinationInExternalPublicDir(MainActivity.this, Environment.DIRECTORY_DOWNLOADS, "test.jpg");
downloadManager.enqueue(request);
如 Lior Shitrit 所述,您需要使用以下方式设置目标目录:requet.setDestinationInExternalPublicDir(...);
。
要获取下载的文件 uri,您需要使用 DownloadManager.ACTION_DOWNLOAD_COMPLETE
操作注册 BroadcastReceiver
。接下来,在 onReceive
if action equals DownloadManager.ACTION_DOWNLOAD_COMPLETE
你可以获得唯一的下载 ID 并使用它查询状态和本地 uri:
String action = intent.getAction();
if (action.equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {
long downloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
Cursor cursor = downloadManager.query(new DownloadManager.Query().setFilterById(downloadId));
if (cursor.moveToFirst()) {
int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
String uriString = cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
...
}
cursor.close();
}
我是 android 中使用 downloadmanager 的新手。我正在使用 genymotion 模拟器。
我正在尝试使用 downloadmanager 下载 mp3 文件。我想知道下载后文件存放在哪里
Environment.getExternalStorageDirectory()
显示/storage/emulated/0。它是共享的 "external storage"
我也查了
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
它指向 /storage/emulated/0/Download
。 mp3 文件不在那里。
我还检查了/storage/emulated/0/Android/data/com.simha.sacredindaapp。 mp3 文件不存在。
我下载mp3文件的代码是:
DownloadManager downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
Uri uri = Uri.parse("http://audio.iskcondesiretree.com/02_-_ISKCON_Swamis/ISKCON_Swamis_-_R_to_Y/His_Holiness_Radhanath_Swami/Lectures/00_-_Year_wise/Devotional_Nectar_-_2016/2016-01-31_Various_-_Vrindavan_is_Perceived_by_Our_Consciousness-For_Ukraine_Devotees_-_Radhanath_Swami.mp3");
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setDescription("My Download").setTitle("Notification titile");
downloadManager.enqueue(request);
您需要设置目标目录。
DownloadManager downloadManager = (DownloadManager)getSystemService(DOWNLOAD_SERVICE);
Uri uri = Uri.parse("http://audio.iskcondesiretree.com/02_-_ISKCON_Swamis/ISKCON_Swamis_-_R_to_Y/His_Holiness_Radhanath_Swami/Lectures/00_-_Year_wise/Devotional_Nectar_-_2016/2016-01-31_Various_-_Vrindavan_is_Perceived_by_Our_Consciousness-For_Ukraine_Devotees_-_Radhanath_Swami.mp3");
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setDescription("My Download").setTitle("Notification titile");
// change the name file and your current activity.
request.setDestinationInExternalPublicDir(MainActivity.this, Environment.DIRECTORY_DOWNLOADS, "test.jpg");
downloadManager.enqueue(request);
如 Lior Shitrit 所述,您需要使用以下方式设置目标目录:requet.setDestinationInExternalPublicDir(...);
。
要获取下载的文件 uri,您需要使用 DownloadManager.ACTION_DOWNLOAD_COMPLETE
操作注册 BroadcastReceiver
。接下来,在 onReceive
if action equals DownloadManager.ACTION_DOWNLOAD_COMPLETE
你可以获得唯一的下载 ID 并使用它查询状态和本地 uri:
String action = intent.getAction();
if (action.equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) {
long downloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
Cursor cursor = downloadManager.query(new DownloadManager.Query().setFilterById(downloadId));
if (cursor.moveToFirst()) {
int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
String uriString = cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
...
}
cursor.close();
}