android 下载目录,android – FileProvider – 从下载目录中打开文件

android 下载目录,android – FileProvider – 从下载目录中打开文件我无法打开“下载文件夹”中的任何文件.我可以下载一个文件并保存在下载文件夹中:DownloadManager.Requestrequest=newDownloadManager.Request(Uri.parse(url));request.setDescription(descricao);request.setTitle(titulo);if(Build.VERSION.SDK_IN…

我无法打开“下载文件夹”中的任何文件.

我可以下载一个文件并保存在下载文件夹中:

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

我在清单中声明我的文件提供程序:

android:name=”android.support.v4.content.FileProvider”

android:authorities=”${applicationId}.fileprovider”

android:exported=”false”

android:grantUriPermissions=”true”>

android:name=”android.support.FILE_PROVIDER_PATHS”

android:resource=”@xml/provider_paths”/>

并与此:

但是,当我单击按钮下载时,我收到此消息:“此文件无法访问.请检查位置或网络,然后重试.”

恢复:

1 – 文件已下载并保存在目录文件夹中.

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”

谢谢.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/34513.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注