1

我在我的应用程序中添加了 2 个小部件。但是,如果用户在某些 Android 版本上将应用程序移至 SD 卡,则小部件将不再可用。

作为解决方案,我创建了一个仅包含小部件的新小应用程序。因此,用户可以将主应用程序移动到 SD 卡并在内部存储中拥有 Widgets 应用程序,以便能够使用 Widgets。除了 2 个主要小部件外,小部件应用程序还有 2 个小部件(总共 4 个)。这 2 个额外的小部件是一种 beta 小部件。如果我看到一个 Widget 被大量使用,我会改进它并将其移动到主包中。

当用户没有将主应用程序移动到 SD 卡(或具有允许使用 SD 卡中的小部件的 Android 版本)并且如果用户安装小部件应用程序以访问这 2 个额外的小部件时,就会出现问题。在这种情况下,用户将获得 2 个主要小部件两次:一次来自主应用程序,另一次来自小部件应用程序。

如果我检测到也安装了小部件应用程序,我想要做的是从主应用程序中禁用这 2 个小部件。那是为了避免重复这两个小部件。

如果安装了小部件应用程序,我确实知道如何从主应用程序检查。我只是不知道如何以编程方式禁用小部件。那可能吗?

4

1 回答 1

5

使用PackageManager和按名称setComponentEnabledSetting()禁用AppWidgetProvider(s),它们将不再显示在列表中。

但是,如果用户已经将这些应用小部件添加到他们的主屏幕,它们就会损坏,用户可能会感到困惑。

于 2012-05-02T15:28:35.267 回答