5

gösterilmiyor devam eden arama çubuğu bildirimi üzerinde webview dosya indiriyorum. Ancak, DownloadManager'ı kullanırken this'a benzer bir indirme bildirimini görüntülemiyor. Sadece arka plan operasyonunda yapıyor. İndirme işlemi devam ederken durum çubuğu bildirimi nasıl görüntülenir? İndirilen dosyayı alabiliyorum, ancak devam eden süreci bildirimde nasıl görüntüleyeceğim?DownloadManager android

"request.setNotificationVisibility (DownloadManager.Request.VISIBILITY_VISIBLE);" ama devam eden süreci göstermiyor. Lütfen bana ne hata yaptığımı göster.

Kullandığım kodum İşte.

mWebview.setDownloadListener(new DownloadListener() { 
      @Override 
      public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { 
       DownloadManager.Request request = new DownloadManager.Request(
         Uri.parse(url)); 
       request.setMimeType("pdf"); 


       String cookies = CookieManager.getInstance().getCookie(url); 


       request.addRequestHeader("cookie", cookies); 


       request.addRequestHeader("User-Agent", userAgent); 


       request.setDescription("Downloading file..."); 


       request.setTitle(URLUtil.guessFileName(url, contentDisposition, 
         "pdf")); 


       request.allowScanningByMediaScanner(); 
       if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     //clueless why it's not working..  
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE); 
       } else { 
        request.setShowRunningNotification(true); 
       } 

       //request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
       request.setDestinationInExternalPublicDir(
         Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName(
           url, contentDisposition, "pdf")); 
       dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); 
       downloadReference = dm.enqueue(request); 
       IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE); 
       registerReceiver(downloadReceiver, filter); 
      } 
     }); 
    } 

    private BroadcastReceiver downloadReceiver = new BroadcastReceiver() { 

     @Override 
     public void onReceive(Context context, Intent intent) { 
      long referenceId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1); 
      if (downloadReference == referenceId) { 
       DownloadManager.Query q = new DownloadManager.Query(); 
       q.setFilterById(intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1)); 
       Cursor c = dm.query(q); 

       if (c.moveToFirst()) { 
        int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS)); 
        if (status == DownloadManager.STATUS_SUCCESSFUL) { 
         // process download 
         String title = c.getString(c.getColumnIndex(DownloadManager.COLUMN_TITLE)); 
         File file = new File(Environment.getExternalStorageDirectory() 
           + "/Download/" + title);//name here is the name of any string you want to pass to the method 
         if (!file.isDirectory()) 
          file.mkdir(); 
         //Intent testIntent = new Intent("com.adobe.reader"); 
         Intent testIntent = new Intent(Intent.ACTION_VIEW); 
         testIntent.setType("application/pdf"); 
         //testIntent.setAction(Intent.ACTION_VIEW); 
         Uri uri = Uri.fromFile(file); 
         testIntent.setDataAndType(uri, "application/pdf"); 
         try { 
          startActivity(testIntent); 
         } catch (ActivityNotFoundException e) { 
          Toast.makeText(MainActivity.this, "No application available to view PDF", 
            Toast.LENGTH_SHORT).show(); 
         } 
         // get other required data by changing the constant passed to getColumnIndex 
        } 
       } 
      } 
     } 
    }; 

Android 7.1.1'de kontrol ettim.

+0

nedir indirmek girişiminde dosyanın boyutu? – Mani

+0

Dosya boyutu 1Mb @ Maani – Shadow

+0

1GB'lık dosya boyutunu deneyebilir ve hala bildirimin gösterilmediğini onaylayabilir! benim şüpheli benim dosya boyutu 1MB zaten – Mani

cevap

2

Evet Çözüm buldum. Sorun, indirme yöneticisi etkinleştirilmedi.

Go to the Settings > App 
In the options click 'Show System Apps' 
Find 'Download Manager' and open it 
Click 'Notifications' under App Settings 
Switch on Allow Notifications 

Referans:

https://stackoverflow.com/a/43841708/1921263