2012-05-06 44 views
0

我有一个应用程序。作为第二个.apk外部应用程序,我有一个应用程序小部件,它通过ContentProvider访问应用程序的数据库。 因此,应用程序小部件仅适用于该应用程序。如何将外部应用程序作为安装应用程序窗口小部件的要求?

我想有以下情形:

  1. 当用户试图安装应用程序插件,安装应中止并告知用户,他必须安装应用程序了。
  2. 当用户卸载应用程序时,应该也删除应用程序窗口小部件,或者应该删除应用程序窗口小部件,或者应该通知用户该应用程序的Unistallation会打破窗口小部件。

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

注意:由于应用程序很大并且安装到SD卡,所以必须安装应用程序窗口小部件,同时将窗口小部件和应用程序安装在相同的apk中在内存上。这是分离的原因。

+1

如果内容提供者可用,为什么不检查小部件安装后?如果未安装,只需显示回退消息,如“请安装应用程序xyz”。 – alex

+0

因为最早的时间点做到这一点,将会是一个配置活动。虽然可能,但这不是一种优雅而且用户友好的方案。 – mrd

回答

1

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

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

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

当用户卸载应用程序,该应用程序窗口小部件应该被删除,也或可替代地

这是不可能的。

应通知用户应用程序的Unistallation会破坏小部件。

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

如果不是,还有什么其他选项/方案可用?最低SDK是7,目标SDK为8

不要与应用程序插件打扰,直到Android 3.0以上版本变得足够的优势,你愿意在主APK打包,为“安装到外部存储”在Android 3.0+上没有真正的意义。

+0

“安装应用程序小部件”我的意思是“安装包含应用程序小部件的APK”。悲伤的状态 - 等待Anddroid 3.0+变得更占优势意味着等待4.0冰淇淋三明治在手机上变得更占优势:( – mrd

相关问题