如何在安装时启动android服务

Rob*_*ton 41 android

我有一个设备管理应用程序,它基本上作为服务在后台从启动运行.我想在安装后立即启动此应用程序.我该如何实现这一目标?

Com*_*are 49

你不能这样做 - 没有办法只因为它已经安装就自动启动你的服务.

必须首先由用户通过某种活动调用应用程序.或者,你将需要挂接到一些相关的广播Intent通过清单,所以当发生这些事件之一,你可以得到控制和脱掉你的服务的方式.或者,您将需要让用户重新启动,以便您的BOOT_COMPLETED Intent过滤器可以获得控制权.

  • 好的,所以它不是真正的安全性,因为我可以在启动时,或在传入的SMS上运行代码,或者在_next_包安装上运行代码.我会将此更多地归类为对预期平台行为的"轻推"类别.但对于我的客户来说,它看起来就像一个bug - 在Android上有一个额外的环节可以跳过来让服务运行.这不是用户从市场中选择的应用程序,这更可能是运营商或企业想要在手机上安装的那种应用程序,优选地根本没有任何最终用户交互. (11认同)
  • 是的,这是故意的.下载应用程序时,应用程序安装会在后台自动进行.我们希望在用户第一次明确转到应用程序之前不会运行应用程序代码.(请不要告诉用户重启他们的设备.没有必要.只需让他们运行你的应用程序并在首次运行时进行初始化.) (5认同)
  • @CommonsWare:Plan B正在利用的技术是什么? (2认同)

Tom*_*Tom 10

有一个漏洞 - 用于在安装后立即发送意图的Android Analytics SDK - 但它已经关闭(当然会产生很多混淆).

但我相信,最后的答案是:

http://developer.android.com/about/versions/android-3.1.html#launchcontrols

这似乎表明,从3.1开始,Google决定应用程序处于停止状态,直到用户明确激活它们,例如通过启动应用程序或放置小部件.

这意味着倾听共同广播的策略(即秘密启动你的应用程序)也不会起作用.