Inconnu de contenu URL://downloads/my_downloads

Je suis en utilisant Download manager pour télécharger des fichiers multimédia et de les catégoriser. Je suis également en utilisant Crashlytics, et c'est une erreur que j'ai souvent sur différents appareils et les versions d'Android. Je suis à la recherche de vos solutions/suggestion!

java.lang.IllegalArgumentException: Unknown URL content://downloads/my_downloads
   at android.content.ContentResolver.insert(ContentResolver.java:862)
   at android.app.DownloadManager.enqueue(DownloadManager.java:1252)
   at com.myapp.LessonFragment$DownloadClickListener.onClick(SourceFile:570)
   at android.view.View.performClick(View.java:4262)
   at android.view.View$PerformClick.run(View.java:17351)
   at android.os.Handler.handleCallback(Handler.java:615)
   at android.os.Handler.dispatchMessage(Handler.java:92)
   at android.os.Looper.loop(Looper.java:137)
   at android.app.ActivityThread.main(ActivityThread.java:4921)
   at java.lang.reflect.Method.invokeNative(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:511)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
   at dalvik.system.NativeStart.main(NativeStart.java)

Vous pouvez voir mes codes ci-dessous:

private class DownloadClickListener implements View.OnClickListener {
@Override
public void onClick(View view) {
//Check if download manager available before request
if (!DownloadHelper.isDownloadManagerAvailable(getActivity())) {
//Build custom alert dialog
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.download_manager_disabled);
builder.setCancelable(false);
builder.setPositiveButton(R.string.ok, (dialog, which) -> {
dialog.dismiss();
});
//Create and display alert dialog
AlertDialog dialog = builder.create();
dialog.show();
return;
}
//Display short toast on download clicked
Toast.makeText(getActivity(), R.string.lesson_download_start, Toast.LENGTH_SHORT).show();
//Get attach from view tag
Attache attache = (Attache) view.getTag();
//Get lesson using lesson id
Lesson lesson = new Select().from(Lesson.class)
.where(Condition.column("id").is(attache.getLessonId()))
.querySingle();
//Set file name from url and attache name
Uri uri = Uri.parse(attache.getFile());
String fileName = attache.getName() + '.'
+ MimeTypeMap.getFileExtensionFromUrl(attache.getFile());
//Check if path directory not exist and create it
String filePath = Environment.getExternalStorageDirectory() + "/myapp/" + lesson.getTitle() + "/";
File path = new File(filePath);
if (!path.exists() || !path.isDirectory()) {
if (!path.mkdirs()) {
Timber.e("Could not create path directory.");
}
}
//Check if file exist and then delete it
File file = new File(filePath, fileName);
if (file.exists() && file.isFile()) {
if (file.delete()) {
Timber.v("%s just deleted.", fileName);
}
}
//Create download manager request using url
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setTitle(attache.getName());
request.setDestinationInExternalPublicDir("/myapp/" + lesson.getTitle(), fileName);
//Using DownloadManager for download attache file
DownloadManager manager = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
}
}
Je suppose que attache.getFile() retourne content://downloads/my_downloads? Dans ce cas, vous pourriez être stocker des valeurs erronées. Le lien que vous donnez à la downloadmanager est un URI utilisé pour identifier un téléchargement à partir d'Androïdes downloadmanager.
Merci, mais en fait, votre supposition est fausse. attache.getFile() url de retour de fichier sur le serveur.
Il ya quelque chose de mal avec "DownloadManager" processus dans votre téléphone, le plus probablement le problème est que le "DownloadManager" est désactivé dans votre téléphone. voir "Paramètres->Applications>>DownloadManager", activez-la si elle est désactivée.
Doublon de : stackoverflow.com/questions/21551538/...
[Veuillez consulter ce lien.très bonne solution de cette question ](stackoverflow.com/questions/21551538/...)

OriginalL'auteur Milad Nekofar | 2015-06-05