2017-08-08 54 views
0

我正在開發一個創建和打開特定文件類型的android應用程序。我正在使用存儲訪問框架來訪問Kitkat或更高版本操作系統的文件。現在我需要打開.enc文件並過濾掉其他任何文件。使用存儲訪問架構我想:如何在存儲訪問框架中設置不常見的文件擴展名?

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); 
intent.addCategory(Intent.CATEGORY_OPENABLE); 
intent.setType("file/enc"); 

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); 
intent.addCategory(Intent.CATEGORY_OPENABLE); 
intent.setType(".enc"); 

但他們沒有工作。請幫幫我。

回答

1

現在我需要打開.enc文件,並過濾掉任何其他文件

這是不可能的,對不起。

此外,沒有什麼能夠阻止用戶或其他軟件擁有一個完全有效的文件,而該文件恰好沒有.enc作爲文件擴展名,因爲可能內容沒有被表示爲文件。例如,該網頁使用HTML格式,但URL不會以.html結尾。

相反,允許用戶選擇任何內容,然後驗證結果選擇,看看它是否適合您所期望的任何文件格式。

+0

很遺憾,SAF有這樣的裸骨API。許多使用MIME類型的現實世界的應用程序都具有使用諸如「application/x-extension」之類的組合MIME類型來表示未識別文件的人造MIME類型的實踐,例如, 「application/x-enc」,「application/x-lnk」等。另外,MIME類型的真實用戶通常使用libmagic或類似軟件,並與其開發者通信以向列表添加感興趣的魔術簽名。但是Android是閉門開發的,因此添加新的MIME類型實際上是不可能的。那裏的API選擇不佳... – user1643723

相關問題