是否可以刷新第三方小部件?

时间:2012-06-01 16:45:41

标签: android android-widget

我正在编写一个可以改变屏幕亮度的应用程序。我还使用第三方小部件,它们都会改变屏幕亮度并显示当前的亮度值。我的程序和第三方小部件具有不同的功能,我想继续使用它们。但是,当我的应用程序更改屏幕亮度时,第三方窗口小部件不会自动刷新以反映此更改。所以,我的问题是:

  • 我的应用程序是否可以调用第三方窗口小部件进行刷新?

  • 如果是这样,是通过刷新手机上的每个小部件来完成的,还是可以定位该特定小部件(例如,按包名称)?

1 个答案:

答案 0 :(得分:1)

  

我的应用程序是否可以调用第三方窗口小部件进行刷新?

不容易,而且根本不可能。

  

如果是这样,是通过刷新手机上的每个小部件来完成的吗

AFAIK,这是不可能的。

  

或者我可以定位该特定小部件(例如,按包名称)吗?

你在此事上别无选择。

这可行的唯一方法是,如果您使用系统用于更新第三方应用小部件的sendBroadcast()调用Intent。您需要指定其他应用ComponentName的{​​{1}}。并且,您无法知道特定AppWidgetProvider额外的应用小部件ID是什么。如果第三方Intent期待您未提供此广播中的内容(例如,应用小部件ID),则可能会崩溃。也有可能这个广播是安全的,不能被其他应用程序发送 - 我从来没有试过这个。