3
我知道我可以使用PackageManager.queryIntentActivities()來獲取ResolveInfo對象的列表。但是,如果用戶爲特定操作(或文件類型)設置了默認的應用程序,該怎麼辦?有沒有辦法找到檢索的ResolveInfo對象中哪個應用程序設置爲默認行爲。有沒有辦法找到在Android中打開特定文件的默認應用程序?
在此先感謝
我知道我可以使用PackageManager.queryIntentActivities()來獲取ResolveInfo對象的列表。但是,如果用戶爲特定操作(或文件類型)設置了默認的應用程序,該怎麼辦?有沒有辦法找到檢索的ResolveInfo對象中哪個應用程序設置爲默認行爲。有沒有辦法找到在Android中打開特定文件的默認應用程序?
在此先感謝
您可以使用resolveActivity()
上PackageManager
找出如果你在Intent
稱爲startActivity()
什麼會啓動。如果返回活動選擇器,那麼您知道有多個選擇,並且沒有設置爲首選應用程序,因此會出現選擇器。另請注意,在美國的某些HTC設備上,對於某些Intent
結構,您將始終獲得HTC提供的中介活動類別 - see this blog post以瞭解更多詳細信息。
感謝您的回答,以及您通過書籍分享的所有智慧。我會試試這個。 – febinkk
另外如何檢查返回的ResolveInfo是否適用於選擇器活動? – febinkk
@febinkk:看看'ResolveInfo'的'activityInfo'。我忘記了選擇器活動的名稱和包裝,但如果您嘗試了一下,它應該是可識別的。 – CommonsWare