2017-08-25 98 views
0

我有項目使用downloadManager,我已經可以在屏幕上顯示下載進度,但問題是當我下載文件後,然後點擊下載完成notif它說「無法打開文件」 這是我的代碼,如何修復DownloadManager無法打開文件和文件丟失?

public class MainActivity extends AppCompatActivity { 
    Button tombolDownload; 
    DownloadManager downloadManager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     tombolDownload = (Button) findViewById(R.id.btnDownload); 
     tombolDownload.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE); 
       Uri uri = Uri.parse("http://192.168.1.64/FileAPK/app1.apk"); 
       DownloadManager.Request request = new DownloadManager.Request(uri); 
       request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
       Long reference = downloadManager.enqueue(request); 
      } 
     }); 
    } 
} 

我怎樣才能解決這個問題呢?

回答

1

我想你應該聲明APK文件的MIME類型。

MIME類型:application/vnd.android.package-archive

使用此如下:

request.setMimeType("application/vnd.android.package-archive"); 

編輯:添加以下行也因此它知道在哪裏存儲它。在你的代碼中,它保存了一些沒有擴展名的隨機數的文件,因此無法打開文件問題。

request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"app1.apk"); 

哪裏app1.apk與擴展文件名,並添加setMimeType()

不要忘了persmissions WRITE_EXTERNAL_STORAGE

希望它有助於

+0

它無法正常工作,無法打開文件同樣的問題 –

+0

試試我新的編輯...它在我的手機上正常工作。希望你的手機也能正常工作。 @JoshParinussa – Sahil

+0

ty先生它的作品真的很好:D非常感謝 –