2014-07-16 55 views
1

我想構建一個將內容提供給其他應用程序的應用程序。意圖過濾器:如何爲所有Android版本創建過濾器(因爲manufacters更改它)

以一個例子

使用原生短信應用從我的供應商附加的圖像。

爲了成爲供應商,我註冊了一些意圖過濾器來做到這一點。我用圖像/ MIME類型ACTION_GET_CONTENT。*

Example complete dialog

我注意到,在一些設備可正常工作,「使用完整的行動」對話框中選擇在列表中的應用程序。

但是,一些廠商的,顯然似乎不符合Google的「建議」

我們怎樣才能註冊那些沒有的?

我假設他們中的一些人使用隱式意圖調用,是否有可能攔截?另一方面,如果這些意圖是明確的,是否有可能「攔截」它們並呈現「完成操作使用」對話框?

+1

在我的經驗,多數的我們必須忍受這些差異,如果原始設備製造商搞砸了,我們可以做的事情就不多了,編寫應用程序的時候應該如何工作,只有在相當一部分目標受衆「受到影響「device。 –

回答

0

1)如果您的問題是「如何截取不同(非標準名稱)的意圖」,您可以使用intent intercept app找出所需的意圖設置。 2)如果你的問題是「如何攔截不被攔截的活動」,我擔心你不能。

我使用(1)方法找出如何攔截谷歌-Android-2.2-calendar-show-event在4.0以前的版本中正式不支持,但工程(至少在我的手機上)。

我有谷歌,Android的4.4日曆顯示事件」,這應該是截取的,但不是(2)的問題。它的4.4是截取的截取的在之前的版本。

+0

我已經使用該應用程序來檢查隱式意圖,但沒有任何運氣 完整的操作對話框未顯示,並且目標活動立即打開 我可以安全地假定,在這些情況下,意圖被明確調用或含蓄地ith自​​定義設置(動作,MIME類型,類別等)? – neteinstein

+0

如果你的意思是「但沒有運氣」,意向截距不能打開:我認爲這是不可能攔截或者用戶按下了「完成動作對話框」中的「始終」按鈕。如果我錯了,請糾正我(我可以從我的答案中解決問題(2))。 – k3b

+0

是的,它不會隨您指出的應用程序一起打開。默認設置並不總是如此。排除可能性,似乎我們有以下兩種可能性:明確意圖或隱含意圖的自定義設置。同意? – neteinstein