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
Merci, mais en fait, votre supposition est fausse.
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/...)
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
Vous devez vous connecter pour publier un commentaire.
Pour ceux qui sont d'Erreur
Unknown URI: content://downloads/public_downloads
.J'ai réussi à résoudre ce problème en obtenant un conseil donné par @Commonsware dans cette réponse. J'ai découvert la classe FileUtils sur GitHub.
Ici
InputStream
méthodes sont utilisées pour récupérer le fichier à partir deDownload
répertoire."content://downloads/all_downloads"
.Il dépend de téléphones différents. Nous pouvons ajouter votre
content://downloads/all_downloads
trop à ce code. Si ces derniers ne fonctionne pas, alors nous utilisons InputStream fonctions.Voir ma réponse mis à jour. Merci pour le partage!!
Cela ne fonctionne pas, j'ai remplacé mon FileUtils avec celui que vous avez mentionné dans le lien. J'ai ensuite remplacé le DowloadsProvider section avec ce que vous avez fourni ci-dessus. Lorsque je sélectionne une vidéo/mp4 à partir de ma Carte SD, l'Uri est vide.
Obtention d'exception ou vide, sans aucune exception? Aussi, je n'ai pas testé avec une carte sd amovible .
OriginalL'auteur karanatwal.github.io
L'exception est causée par des handicapés Gestionnaire de Téléchargement. Et il n'y a aucun moyen d'activer/désactiver le Gestionnaire de Téléchargement directement, puisque c'est l'application du système et nous n'avons pas accès.
Seule alternative est de rediriger l'utilisateur pour les paramètres du Gestionnaire de Téléchargement de l'Application.
OriginalL'auteur Anisuzzaman Babla