【问题标题】:How to have external app as requirement for installation of app widget?如何将外部应用程序作为安装应用程序小部件的要求?
【发布时间】:2012-05-06 21:42:11
【问题描述】:

我有一个应用程序。在应用程序外部,作为第二个 .apk,我有一个应用程序小部件,它通过 ContentProvider 访问应用程序的数据库。 因此,只有在安装了应用程序的情况下,应用程序小部件才有效。

我希望有以下场景:

  1. 当用户尝试安装应用小部件时,安装应该中止并通知用户,他也必须安装应用。
  2. 当用户卸载应用程序时,应用程序小部件也应该被删除,或者
  3. 应告知用户,卸载应用会破坏小部件。

有没有办法做到这一点,即。在应用小部件清单中有一些设置? 如果没有,还有哪些其他选项/方案可用? 最小 SDK 为 7,目标 SDK 为 8。

注意:不能将小部件和应用程序放在同一个 apk 中,因为应用程序很大并且安装到 SD 卡上,而应用程序小部件必须安装在内存中。这就是分开的原因。

【问题讨论】:

  • 如果内容提供程序可用,为什么不在小部件安装后检查?如果未安装,则只显示一条后备消息,例如“请安装应用 xyz”。
  • 因为最早的时间点是配置活动。虽然可能,但这不是一个优雅且用户友好的场景。

标签: android installation widget manifest


【解决方案1】:

当用户尝试安装应用小部件时,安装应该中止并通知用户,他也必须安装应用。

如果“安装应用小部件”是指“安装包含应用小部件的 APK”,这是不可能的。

如果“安装应用小部件”的意思是“将应用小部件添加到主屏幕”,您或许可以使用配置活动来安装某些东西。这或多或少会归结为亚历克斯在评论中的回答。

当用户卸载应用程序时,应用程序小部件也应该被删除,或者

这是不可能的。

应告知用户,卸载应用会破坏小部件。

这也是不可能的。但是,一旦用户卸载了一个 APK,应用小部件 APK 可能会有一个 BroadcastReceiver 监视 ACTION_PACKAGE_REMOVED,然后让用户知道问题所在。

如果没有,还有哪些其他选项/方案可用?最小 SDK 为 7,目标 SDK 为 8。

在 Android 3.0+ 变得足够主导以至于您愿意将其打包到主 APK 之前,不要打扰应用小部件,因为“安装到外部存储”在 Android 3.0+ 上没有实际意义。

【讨论】:

  • 与“安装应用小部件”我的意思是“instakk 包含应用小部件的 APK”。可悲的事态——等待 Android 3.0+ 变得更占主导地位意味着等待 4.0 Ice Cream Sandwich 在手机上变得更占主导地位:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 2012-02-29
  • 1970-01-01
  • 2013-01-11
  • 2012-08-30
相关资源
最近更新 更多