5

Tôi đang tải xuống tệp từ chế độ xem web. Nhưng nó không hiển thị thông báo tải xuống đang diễn ra tương tự như this khi sử dụng DownloadManager. Nó chỉ làm trong hoạt động nền. Cách hiển thị thông báo trên thanh trạng thái khi đang tải xuống. Tôi có thể tải tệp xuống nhưng cách hiển thị quá trình đang diễn ra trong thông báo?Thông báo tìm kiếm tiến trình không hiển thị trong DownloadManager android

Tôi đã sử dụng "request.setNotificationVisibility (DownloadManager.Request.VISIBILITY_VISIBLE);" nhưng nó không hiển thị quá trình đang diễn ra. Xin vui lòng hướng dẫn tôi những gì sai lầm tôi đang làm.

Đây là mã của tôi mà tôi đã sử dụng.

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 
        } 
       } 
      } 
     } 
    }; 

Tôi đã đăng ký Android 7.1.1.

+0

Whats kích thước của tập tin bạn cố gắng để tải về? – Mani

+0

Kích thước tệp là 1Mb @Mani – Shadow

+0

bạn có thể thử kích thước tệp 1GB và xác nhận rằng thông báo vẫn không hiển thị! khả năng của tôi là kích thước tệp 1MB có thể là cơ hội mà nó đã tải xuống là – Mani

Trả lời

2

Có tôi đã tìm thấy giải pháp. Sự cố không được bật trình quản lý tải xuống.

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 

tham khảo:

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

Các vấn đề liên quan