2016-11-01 27 views
1

我被困在一个非常棘手的问题上。 上下文:我的应用程序是打开打开具有特殊扩展名的文件(说myFile.png.myapp)下载的文件在某些​​设备上没有扩展名

当我从我的服务器下载它使用Chrome,它下载罚款,我得到一个“打开”提示,触发我的但是,意图中的路径的格式为content:// downloads/my_downloads/2136。

没有扩展名。

由于各种原因,我可以发送的唯一MimeType是application/octet-stream,所以我无法知道该文件确实是一个PNG。

如果我点击文件下载的通知,它可以正常工作。

这只发生在运行Android 6.0.1的Nexus 5上,在其他设备上,我得到实际的文件名并且运行顺畅。

我有两个清单,并在应用程序权限设置。

我的调查使我认为这是归功于DownloadProvider软件包中的Helpers类,但我不确定。

任何人都可以协助吗?

干杯

回答

0
String path = "content://downloads/my_downloads/2136"; 

String mimeType = getContentResolver().getType(Uri.parse(path)); 
+0

谢谢,但正如我所说,mime类型将永远是应用程序/八位字节流所以这没有给出更多的信息。 – Tom

+0

不可以。你说'唯一可以发送的MimeType是application/octet-stream'。然后发送是不同的,然后确定这里所做的。因此,如果Chrome正在下载,那么您发送了什么? – greenapps

+0

但是,您可以使用DocumentFile for uri,然后使用DocumentFile.getName(),这会为您提供原始文件名。 – greenapps

相关问题