【问题标题】:Start Service on boot without activity (but with root)在没有活动的情况下启动服务(但使用 root)
【发布时间】:2015-11-17 02:20:59
【问题描述】:

我想为我的手机创建一个始终在后台运行的应用程序 - 您永远不应该停止该服务的运行。 我的目标是,这个应用程序正在将当前位置数据发送到我家中的计算机 - 例如当它被盗或丢失时,将其取回。

问题是,没有活动和/或启动器图标就无法启动服务(因为小偷不应该知道这一点)。

但是:我的手机已经root了,还能启动服务吗?

另外:当我将 APK 放入 /system/app 分区时,APK 会在恢复出厂设置后保留吗?

【问题讨论】:

    标签: android service boot


    【解决方案1】:

    是的,你可以。根您的手机对于您想要做什么并不重要,如果有人试图将您的手机恢复出厂设置,您的应用程序仍然不会被删除,如果您按照您所说的将您的 apk 放在/system/app 分区中。它会像正常的系统应用程序一样做出反应。但当然,您还必须在将应用移至系统文件夹时为其设置正确的权限才能正常工作。

    为了防止窃贼知道您的应用,您可以只用一个模糊的名称命名您的应用,并且不使用描述您的应用功能的图标,因为您的应用仍会在您的手机设置中的应用管理器中可见。除此之外,您还可以执行以下操作:

    要创建在 Home Launcher 中没有图标的应用,只需从 AppManifest.xml 中删除您的活动的意图过滤器android.intent.category.LAUNCHER

    要实现您的后台应用程序,很大程度上取决于您想要做什么。您可以为长时间运行的任务创建 ServiceBroadcastReceiver 以使用意图过滤器对特定事件或活动做出反应。

    编辑:

    为了让您的应用程序自动运行,您必须将您的应用程序放入此文件夹/system/priv-app。这样,您的应用将在您每次启动设备时启动。

    【讨论】:

    • 首先,感谢您的快速回复。但通常,您需要启动您的应用程序一次,然后它才能捕获启动事件。如何处理?
    • 好问题,我不是android服务专家,但是我搜索了很多关于如何在没有用户交互的情况下自动启动服务,发现这是不可能的,你可能需要检查这些链接:stackoverflow.com/questions/990217/…stackoverflow.com/questions/2127044/… 也许,您将不得不创建一个像这样的简单用户界面:android-codes-examples.blogspot.com/2011/11/… 并让您的应用名称和图标变得模棱两可...
    • 此链接可能对您也有用:stackoverflow.com/questions/8531926/…
    • 那些链接很有趣,但我可能有一个想法。主屏幕/启动器始终执行 - 它只是必须执行。是不是可以修改apk或对执行我的apk的系统分区进行一些更改?然后我会让我的服务启动默认启动器。
    • 其实我已经找到了解决办法(也许,还是不确定)。检查此链接:stackoverflow.com/questions/10428510/… 这将在手机完全启动时启动您的应用程序。
    猜你喜欢
    • 2015-03-07
    • 2016-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多