我目前正在學習開發Android應用程序,並有一個相當基本的問題:android如何找出隱式Intent的URI的MIME類型?
假設我想發出一個隱含的Intent來打開由URI鏈接指定的數據, 「內容://com.mynewauthority:8100 /表1」。假設我創建了一個自定義Content Provider,它在「content://com.mynewauthority:8100/table1」維護一個SQLite表。
現在,由於我沒有爲我的表指定MIME類型,但只有它的URI,Android必須能夠以某種方式找出它。但由於它是一個定製的表格,我自己決定MIME類型,所以我知道它可能是「猴子/香蕉」。我似乎無法在Content Provider實現中的任何位置找到指定哪個MIME類型與除了getType(URI uri)函數之外的哪些URI一起使用,而這些函數似乎未被Android系統用於Intent解析。
所以我的問題是:在隱式意圖的解析過程中,Android如何找出與定製內容提供者的URI相關聯的MIME類型?
希望這個問題已經夠清楚了!
「這似乎沒有被Android系統用於Intent解析」 - 您的證據是,究竟是什麼? – CommonsWare
對不起,我的壞!我沒有以正確的方式測試我的應用程序。現在我設法通過更改getType()函數來使應用程序中斷。所以基本上,Android系統使用getType(URI uri)函數進行意圖解析?這意味着Android系統可以查找與URI關聯的內容提供者並使用getType()函數來檢索MIME類型。 – user1365680
不,它只需要根據權威機構('com.mynewauthority')確定的右側ContentProvider調用'getType()'。順便說一句,你不用'ContentProvider'使用端口號。 – CommonsWare