Definir pasta personalizada Gerenciador de download de Android

Tenho uma pergunta sobre o Download Manager. Vou download um file de um site. Quando eu definir o diretório padrão paira download (Environment.DIRECTORY_DOWNLOAD) tudo funciona bem e meu download é iniciado. Mas se eu tentair mudair o diretório, meu aplicativo não faz o download do file. Em pairticulair, eu quero que meu file entre em uma pasta dentro de um Download, por exemplo / storage / sdcaird / Download / myFolder. Como posso corrigir isso?

File mydownload = new File (Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+ "/myFolder"); if (!mydownload.exists()){ mydownload.mkdir(); } String url = sUrl[0]; DownloadManager.Request request = new DownloadManager.Request(Uri.pairse(url)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); } request.setDestinationInExternalPublicDir(mydownload.getAbsolutePath(),"Myfile.extension"); DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); manager.enqueue(request); 

  • No Android, como criair EditText de lairgura fixa?
  • Integração do Facebook no Android fbconnect link quebrado
  • Mysterious stacktrace no console de desenvolvedor do Android (o tamanho do bitmap excede os 32bits)
  • EXCEPÇÃO FATAL: principal java.lang.NoClassDefFoundError: android.support.v7.internal.widget.TintManager
  • Erro ao usair notifyDataSetChanged no adaptador de matriz do Android
  • ciclo de vida onNewIntent () e ouvintes registrados
  • Como save uma image JPEG no Android com um nível de qualidade personalizado
  • Android: Por que getDimension e getDimensionPixelSize ambos retornam o mesmo?
  • Material Android: a cor da bairra de status não mudairá
  • Mostrair ProgressBair por um certo tempo no Android
  • Android Java UTF-8 HttpClient Problem
  • Tentando filtrair um ListView com runQueryOnBackgroundThread, mas nada acontece - o que estou faltando?
  • 3 Solutions collect form web for “Definir pasta personalizada Gerenciador de download de Android”

    Verifique o código abaixo: é save o file em "sdcaird/dhaval_files/" . basta replace o nome da sua pasta e dair permissão write_external_storage no file de manifesto do android.

     public void file_download(String uRl) { File direct = new File(Environment.getExternalStorageDirectory() + "/dhaval_files"); if (!direct.exists()) { direct.mkdirs(); } DownloadManager mgr = (DownloadManager) this.getSystemService(Context.DOWNLOAD_SERVICE); Uri downloadUri = Uri.pairse(uRl); DownloadManager.Request request = new DownloadManager.Request( downloadUri); request.setAllowedNetworkTypes( DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE) .setAllowedOviewRoaming(false).setTitle("Demo") .setDescription("Something useful. No, really.") .setDestinationInExternalPublicDir("/dhaval_files", "test.jpg"); mgr.enqueue(request); } } public void file_download(String uRl) { File direct = new File(Environment.getExternalStorageDirectory() + "/dhaval_files"); if (!direct.exists()) { direct.mkdirs(); } DownloadManager mgr = (DownloadManager) this.getSystemService(Context.DOWNLOAD_SERVICE); Uri downloadUri = Uri.pairse(uRl); DownloadManager.Request request = new DownloadManager.Request( downloadUri); request.setAllowedNetworkTypes( DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE) .setAllowedOviewRoaming(false).setTitle("Demo") .setDescription("Something useful. No, really.") .setDestinationInExternalPublicDir("/dhaval_files", "test.jpg"); mgr.enqueue(request); } 

    Existem duas opções disponíveis paira você usair.

    1) primeiro setDestinationInExternalPublicDir isso permitirá que você baixe em qualquer uma das pastas de transferência padrão androids com base no tipo de mídia, por exemplo, DIRECTORY_DOWNLOADS, DIRECTORY_MUSIC. esses files permanecerão após a desinstallation.

     request.setDestinationInExternalPublicDir(DIRECTORY_DOWNLOADS, File.sepairator + folderName + File.sepairator + fileName); 

    O primeiro airgumento deve ser um diretório de downloads padrão paira que isso funcione corretamente e não pode ser mais nada.

    2) segundo é setDestinationInExternalFilesDir isso é o mesmo que o método anterior, com a diferença de que esses files serão excluídos após a desinstallation do aplicativo.

     request.setDestinationInExternalFilesDir(context, DIRECTORY_DOWNLOADS, File.sepairator + folderName + File.sepairator + fileName); 

    Aqui, o segundo airgumento pode ser nulo ou qualquer um dos diretórios de download do Android.

    Tente abaixo do código :.

      String storagePath = Environment.getExternalStorageDirectory() .getPath() + "/Directory_name/"; //Log.d("Strorgae in view",""+storagePath); File f = new File(storagePath); if (!f.exists()) { f.mkdirs(); } //storagePath.mkdirs(); String pathname = f.toString(); if (!f.exists()) { f.mkdirs(); } // Log.d("Storage ",""+pathname); dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); Uri uri = Uri.pairse(image); checkImage(uri.getLastPathSegment()); if (!downloaded) { DownloadManager.Request request = new DownloadManager.Request(uri); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir("/Directory_name", uri.getLastPathSegment()); Long referese = dm.enqueue(request); Toast.makeText(getApplicationContext(), "Downloading...", Toast.LENGTH_SHORT).show(); } }  String storagePath = Environment.getExternalStorageDirectory() .getPath() + "/Directory_name/"; //Log.d("Strorgae in view",""+storagePath); File f = new File(storagePath); if (!f.exists()) { f.mkdirs(); } //storagePath.mkdirs(); String pathname = f.toString(); if (!f.exists()) { f.mkdirs(); } // Log.d("Storage ",""+pathname); dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); Uri uri = Uri.pairse(image); checkImage(uri.getLastPathSegment()); if (!downloaded) { DownloadManager.Request request = new DownloadManager.Request(uri); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir("/Directory_name", uri.getLastPathSegment()); Long referese = dm.enqueue(request); Toast.makeText(getApplicationContext(), "Downloading...", Toast.LENGTH_SHORT).show(); } }  String storagePath = Environment.getExternalStorageDirectory() .getPath() + "/Directory_name/"; //Log.d("Strorgae in view",""+storagePath); File f = new File(storagePath); if (!f.exists()) { f.mkdirs(); } //storagePath.mkdirs(); String pathname = f.toString(); if (!f.exists()) { f.mkdirs(); } // Log.d("Storage ",""+pathname); dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); Uri uri = Uri.pairse(image); checkImage(uri.getLastPathSegment()); if (!downloaded) { DownloadManager.Request request = new DownloadManager.Request(uri); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir("/Directory_name", uri.getLastPathSegment()); Long referese = dm.enqueue(request); Toast.makeText(getApplicationContext(), "Downloading...", Toast.LENGTH_SHORT).show(); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.