2016-11-01 111 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

相關問題