我在寫一個改變屏幕亮度的應用程序。我還使用第三方小部件,它們都會更改屏幕亮度並顯示當前亮度值。我的程序和第三方小部件有不同的功能,我想繼續使用它們。但是,當我的應用程序更改屏幕亮度時,第三方窗口小部件不會自動刷新以反映此更改。所以,我的問題是:是否可以刷新第三方小部件?
我的應用程序是否可以調用第三方小部件進行刷新?
如果是這樣,是通過刷新手機上的每個小部件來完成的,還是我可以針對特定的小部件(例如,通過包名稱)?
我在寫一個改變屏幕亮度的應用程序。我還使用第三方小部件,它們都會更改屏幕亮度並顯示當前亮度值。我的程序和第三方小部件有不同的功能,我想繼續使用它們。但是,當我的應用程序更改屏幕亮度時,第三方窗口小部件不會自動刷新以反映此更改。所以,我的問題是:是否可以刷新第三方小部件?
我的應用程序是否可以調用第三方小部件進行刷新?
如果是這樣,是通過刷新手機上的每個小部件來完成的,還是我可以針對特定的小部件(例如,通過包名稱)?
是否有可能爲我的應用程序來調用第三方插件被刷新?
不容易,很可能根本沒有。
如果是這樣,這是通過刷新每個插件的手機上
AFAIK完成的,這是不可能的。
或者我可以針對特定的小部件(例如,通過包名稱)?
你在這件事上別無選擇。
這可能工作的唯一方法是,如果您撥打sendBroadcast()
與系統用於更新第三方應用小部件的Intent
相同。您需要指定其他應用的AppWidgetProvider
的ComponentName
。而且,您無法知道該特定的應用程序控件ID是多少。如果第三方AppWidgetProvider
正在等待您未提供的廣播內容(例如,應用部件ID),則可能會崩潰。這也是可能的,這個廣播是安全的,不能由其他應用程序發送 - 我從來沒有試過這個。
是的,這聽起來像我懷疑。不過,我認爲這值得提問。謝謝! – osweetman