Wikipedia says加載擴展名爲.gpx的文件,GPX文件的MIME類型爲application/gpx+xml
。所以我用下面的代碼:無法通過存儲訪問框架
startActivityForResult(
new Intent(Intent.ACTION_OPEN_DOCUMENT)
.addCategory(Intent.CATEGORY_OPENABLE)
.setType("application/gpx"),
READ_GPX_FILE_REQUEST_CODE
);
也試過這樣:
startActivityForResult(
new Intent(Intent.ACTION_OPEN_DOCUMENT)
.addCategory(Intent.CATEGORY_OPENABLE)
.setType("application/gpx+xml"),
READ_GPX_FILE_REQUEST_CODE
);
而且作爲最後的手段我試圖用Intent#setTypeAndNormalize(String)
方法。沒有運氣 - 當文件選擇器對話框啓動時,所有帶有.gpx
擴展名的文件都有灰色,即它們不可選。在我的代碼中是否存在一些問題,或者SAF的Intent
有一些可以使用的預配置MIME類型集,並且application/gpx+xml
不屬於這個集?
'「*/*」'會做到這一點。 – greenapps
@greenapps是的,但在這種情況下,我必須編寫額外的代碼來檢查所選文件的MIME類型,以確保當用戶意外選擇音頻文件而不是gpx文件時應用程序不會崩潰。 – aga