Le gestionnaire de téléchargement ne fonctionne pas sur les appareils LG

J'essaie d'effectuer le téléchargement du fichier à l'aide de DownloadManager . Tout fonctionne bien, sauf les appareils LG. Voici mon code:

private void downloadFile(FileInfo fileInfo) { private DownloadManager manager = (DownloadManager) MyApp.getSingleton(). getApplicationContext().getSystemService(Context.DOWNLOAD_SERVICE); DownloadManager.Request request = new DownloadManager.Request(Uri.parse("https://" + MyPreference.getInstance().getBaseUrl() + "/api/v3/files/" + fileId + "/get")); request.setDescription(MyApp.getSingleton().getApplicationContext().getString(R.string.downloading)); request.setTitle(fileInfo.getmName()); request.addRequestHeader("Authorization", "Bearer " + MyPreference.getInstance().getAuthToken()); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); File dir = new File(FileUtil.getInstance().getDownloadedFilesDir()); if(!dir.exists()){ dir.mkdirs(); } request.setDestinationUri(Uri.fromFile(new File(FileUtil.getInstance().getDownloadedFilesDir() + File.separator + fileInfo.getmName()))); downloadId = manager.enqueue(request); new Thread(() -> { boolean downloading = true; while (downloading) { DownloadManager.Query q = new DownloadManager.Query(); q.setFilterById(downloadId); Cursor cursor = manager.query(q); cursor.moveToFirst(); int bytes_downloaded = 0; long bytes_total = 0; try { bytes_downloaded = cursor.getInt(cursor .getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)); bytes_total = cursor.getInt(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)); } catch (CursorIndexOutOfBoundsException e) { e.printStackTrace(); cursor.close(); break; } catch (IllegalArgumentException e){ e.printStackTrace(); cursor.close(); break; } if (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_FAILED) { downloading = false; cursor.close(); onDownloadFail(); break; } else if (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_SUCCESSFUL) { downloading = false; cursor.close(); break; } if (bytes_total > 0) { final int dl_progress = (int) ((bytes_downloaded * 100L) / bytes_total); onProgress(dl_progress); } cursor.close(); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } 

Sur la ligne des appareils LG

  • Mise à jour de l'interface utilisateur avec Runnable & postDelayed ne fonctionne pas avec l'application de minuterie
  • Android écran de connexion Facebook sans clavier
  • Le SDK de Facebook pour téléchargement sur Android échoue toujours
  • Application mal configurée Désolé, myapp n'a pas été approuvé pour l'afficher dans App Center. Dans l'application Android
  • Facebook: votre lien n'a pas pu être partagé
  • Session.isOpened () == true mais Session.getAccessToken () == ""
  •  bytes_total = cursor.getInt(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)); 

    Retourne -1. La notification de téléchargement apparaît dans la barre de notification et disparaît immédiatement après quelques millisecondes. Aucune exception, personne ne entre dans cette section de code

     if (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_FAILED) { downloading = false; cursor.close(); onDownloadFail(); break; } else if (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager.STATUS_SUCCESSFUL) { downloading = false; cursor.close(); break; } 

    Juste rien. Donc, pendant que le cycle interne () fonctionne pour toujours. Testé sur les appareils LG D802 et LG G3 S. Les deux appareils présentent le même comportement.

    One Solution collect form web for “Le gestionnaire de téléchargement ne fonctionne pas sur les appareils LG”

    J'ai fait face au même problème et j'ai trouvé la solution pour cela. Vous devez vous assurer que tous les répertoires existent avant init Download Manager. Exemple: dans mon cas, le chemin d'accès à mon fichier est /storage/emulated/0/MyFolder/n.jpeg, donc je dois m'assurer que le répertoire MyFolder existe avant d' installer Download Manager.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.