2017-08-15 10 views
-2

WebViewからファイルをダウンロードできますが、通知パネルには進行状況バーが表示されませんが、Extストレージのダウンロードディレクトリに移動するとファイルを見ることができます。WebView内のファイルをダウンロードするときに通知が表示されないバー

見えるダウンロードプログレスバーを作成するにはどうすればよい。任意の助けをいただければ幸いです。

ここでダウンロード

webView.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(mimeType); 
         //------------------------COOKIE!!------------------------ 
         String cookies = CookieManager.getInstance().getCookie(url); 
         request.addRequestHeader("cookie", cookies); 
         //------------------------COOKIE!!------------------------ 
         request.addRequestHeader("User-Agent", userAgent); 
         request.setDescription("Downloading file..."); 
         request.setTitle(URLUtil.guessFileName(url, contentDisposition, mimeType)); 
         request.allowScanningByMediaScanner(); 
         request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
         request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, URLUtil.guessFileName(url, contentDisposition, mimeType)); 
         DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); 
         dm.enqueue(request); 
         Toast.makeText(getApplicationContext(), "Downloading File", Toast.LENGTH_LONG).show(); 
        } 
       }); 

、私のマニフェストファイルを開始するためのライブラリーからのコードがされている

<?xml version="1.0" encoding="utf-8"?> 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/icon" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/icon" 
    android:supportsRtl="true" 
    android:theme="@style/Theme.AppCompat.NoActionBar"> 
    <activity 
     android:name=".MainActivity" 
     android:configChanges="orientation" 
     android:screenOrientation="portrait" 
     android:theme="@style/AppTheme.TransNav"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 


      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".UpdateDialog" 
     android:theme="@style/Theme.AppCompat.Dialog" /> 

    <service android:name=".MyFirebaseMessagingService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.MESSAGING_EVENT" /> 
     </intent-filter> 
    </service> 
    <service android:name=".MyFirebaseInstanceIDService"> 
     <intent-filter> 
      <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 
     </intent-filter> 
    </service> 
    <service 
     android:name=".UpdateService" 
     android:enabled="true" 
     android:exported="true" /> 

</application> 

すべてのヘルプは大幅にいただければ幸いです。そしてレコードを、ダウンロードリンクは、Googleドライブ

から生成されていると私の主な活動ファイルで始まる:あなたはすでにSDカードまたはダウンロードしたディレクトリからこのファイルを取得し、次にダウンロードしたファイルしている場合は

public class MainActivity extends AppCompatActivity { 

boolean doubleBackToExitPressed = false; 
private TextView textView; 
private BottomBar bottomBar; 


@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
      WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    setContentView(R.layout.activity_main); 

    View decorView = getWindow().getDecorView(); 
    int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN; 
    decorView.setSystemUiVisibility(uiOptions); 
+0

あなたがチェックしているOS上で?マシュマロまたはその後? –

+1

あなたのファイルはダウンロードされましたが、この場合はそのファイルを見ることができません。 –

+0

@FarazAhmedはい、私は気づいた、ファイルは実際にダウンロードディレクトリの中にあります。どのように私はそれを解決する必要があります。私もbluestacksエミュレータ4.4.2バージョンであり、私のデバイスも同じバージョンです。しかし、ダウンロードの進行状況バーは、私がbluestacksで実行したときに表示され、デバイスを実行している場合には表示されません。 –

答えて

1

  1. Read file from SDCard

次に、アプリケーションのデフォルトのPDFビューアでファイルを開く

public static void openPdfFileAsIntent(Context context, File file) { 

    Intent target = new Intent(Intent.ACTION_VIEW); 
    target.setDataAndType(Uri.fromFile(file), "application/pdf"); 
    target.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

    Intent intent = Intent.createChooser(target, "Open File"); 
    try { 
     context.startActivity(intent); 
    } catch (ActivityNotFoundException e) { 

     Toast.makeText(context, "Please add PDF Viewer Application", Toast.LENGTH_LONG).show(); 
    } 
} 

使用方法は以下を参照してください。

openPdfFileAsIntent(MainActivity.this,file); 
+0

それは別の解決策ですが、既定のブラウザから何かをダウンロードしたときと同じように、ダウンロードプログレスバーを表示することはできません。それは本当にユーザーがファイルを追跡するのに役立ちます、ダウンロードにどれくらいの時間がかかりますか? –

+0

進捗状況を公開するカスタムダウンローダを使用してファイルをダウンロードできます。 –

関連する問題