0

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

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

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

4

1 回答 1

1

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

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

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

AFAIK,这是不可能的。

或者我可以定位那个特定的小部件(例如,通过包名称)?

在这件事上你别无选择。

这可能起作用的唯一方法是,如果您使用系统用于更新第三方应用程序小部件sendBroadcast()的相同方式进行调用。Intent您需要指定ComponentName其他应用程序的AppWidgetProvider. 而且,您无法知道该特定Intent附加组件的应用小部件 ID 是什么。如果第三方AppWidgetProvider在此广播中期待您未提供的某些内容(例如,应用小部件 ID),则它可能会崩溃。这个广播也有可能是安全的,不能被其他应用程序发送——我从来没有试过这个。

于 2012-06-01T17:05:37.000 回答