2014-12-28 32 views
0

我試圖通過意向啓動維基百科應用程序,但我總是得到一個InvocationTargetException,因爲無法找到活動。我可以檢測到維基百科已安裝,但我無法啓動它。我知道我也可以使用意圖過濾器並調用維基百科URL,但用戶可以在應用程序和瀏覽器之間做出決定(兩者與搜索參數不同,這不是很有用),我想爲用戶做出決定。通過意向啓動維基百科

我用下面的代碼試了一下:

final Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_SEND); 
intent.putExtra(Intent.EXTRA_TEXT, "searchString"); 
intent.setType("text/plain"); 
intent.setPackage("org.wikipedia"); 

有人可以告訴我,我在做什麼錯了,或只是無法啓動應用程序維基百科? : -/

+0

請參閱http://stackoverflow.com/questions/2780102/open-another-application-from-your-own-intent,但這句話不好**我想爲用戶決定** –

+0

thx ,但這隻意味着我不希望用戶點擊太多 - 這只是一個可用性決定 – Strassenrenner

回答

1

最後,我在github上查看維基百科代碼(https://github.com/wikimedia/apps-android-wikipedia)後找到了一個解決方案。該應用程序偵聽只爲查看意圖,這意味着下面的代碼工作:

final Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(searchUri); 
intent.setPackage("org.wikipedia"); 

這裏的問題是,只有URI對現有的物品進行了處理,並可以使用任何搜索操作。在代碼中觀察了一點之後,我發現了一個PageActivity,它也監聽ACTION_SEARCH的意圖。這將工作,當在AndroidManifest.xml這個意圖過濾器也將可用。