我正在开发一个Android应用程序,该应用程序使用多个第三方应用程序,通过意图调用,例如:第三方日历,webradio等。因此,为了正确启动这些意图,需要安装这些应用程序。是否可以在我的应用程序中包含这些apks,以便在我的应用程序安装时自动安装它们? 让用户手动安装这些应用程序似乎是一种非常糟糕的方式......
有什么建议吗?
由于 彼得
答案 0 :(得分:7)
是否可以在我的应用程序中包含这些apks,以便在我的应用程序安装时自动安装它们?
这可能不是一个好主意。
对于初学者来说,这可能是侵犯版权的行为,除非您获得这些开发者明确许可以这种方式捆绑。
然后,问题是这些开发人员是否实际公开了他们期望您使用这种方式的API,以及该API是否对他们来说是唯一的还是通用系统的一部分(例如,{{1} })。用户应该能够安装他们想要的满足通用ACTION_SEND
请求的任何应用程序(例如,Intent
),而不是被迫使用您要求的某些应用程序。并且您不应该集成到不公开文档化和支持的API的应用程序,或者表明他们对此类集成感兴趣。
然后,如果这些应用最初并非通过某些标准分发服务(例如Android电子市场)安装,则可能会在以后更新这些应用。
然后,所有这些APK文件的问题使得您自己的APK文件更大,占用了设备上更多的空间。
如果你能完成所有这些,那应该是可能的。将APK打包为资源,首次运行时将其复制到外部存储,然后使用正确的MIME类型通过ACTION_SEND
在其上启动ACTION_VIEW
Intent
。
但是,这可能不是一个好主意。
让用户手动安装这些应用程序似乎是一种非常糟糕的方式...
理想情况下,您的应用程序不应该依赖于这些其他应用程序,因此用户是否拥有它们并不重要。您可以通过startActivity()
和PackageManager
检测它们是否存在,然后使用它来确定是否要禁用部分应用,或指导用户安装额外的应用程序等。