我无法打开“下载文件夹”中的任何文件.
- DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
- request.setDescription(descricao);
- request.setTitle(titulo);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
- request.allowScanningByMediaScanner();
- request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
- }
- request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,nome);
- enq = downloadManager.enqueue(request);
在此之后,我的文件在目录文件夹中保存正确:Android>>内部共享存储>>下载.
***我看到这条路径在ubuntu中手动打开设备的高清.由于图像显示路径.
Android HD by ubuntu folder – see the path
我尝试用这个打开这个文件:
- downloadManager = (DownloadManager)getContext().getSystemService(DOWNLOAD_SERVICE);
- BroadcastReceiver receiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context,Intent intent) {
- String action = intent.getAction();
- if(DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
- long downloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID,0);
- DownloadManager.Query query = new DownloadManager.Query();
- query.setFilterById(enq);
- Cursor c = downloadManager.query(query);
- if(c.moveToFirst()) {
- int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
- if(DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
- String uriString = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
- if (uriString.substring(0,7).matches("file://")) {
- uriString = uriString.substring(7);
- }
- File file = new File(uriString);
- Uri uriFile = FileProvider.getUriForFile(getContext(),BuildConfig.APPLICATION_ID + ".fileprovider",file);
- String mimetype = "application/pdf";
- Intent myIntent = new Intent(Intent.ACTION_VIEW);
- myIntent.setDataAndType(uriFile,mimetype);
- Intent intentChooser = Intent.createChooser(myIntent,"Choose Pdf Application");
- startActivity(intentChooser);
- }
- }
- }
- }
- };
- getContext().registerReceiver(receiver,new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
我在清单中声明我的文件提供程序:
- <provider
- android:name="android.support.v4.content.FileProvider"
- android:authorities="${applicationId}.fileprovider"
- android:exported="false"
- android:grantUriPermissions="true">
- <Meta-data
- android:name="android.support.FILE_PROVIDER_PATHS"
- android:resource="@xml/provider_paths"/>
- </provider>
并与此:
- <?xml version="1.0" encoding="utf-8"?>
- <paths xmlns:android="http://schemas.android.com/apk/res/android">
- <external-path name="Download" path="Download/"/>
- </paths>
但是,当我单击按钮下载时,我收到此消息:“此文件无法访问.请检查位置或网络,然后重试.”
恢复:
2 – 意图已启动,但文件未打开.
3 – 调试模式在“new File(urlString)”中给出了这个:“urlString = / storage / emulated / 0 / Download / name.pdf”
4 – 在“FileProvider.getUriFromFile …”调试模式具有:
“uriFile = content://com.example.android.parlamentaresapp.fileprovider/Download/name.pdf”
谢谢.