在专用设备上自动启动Android应用程序的最佳方法是什么?



我是Android编程新手,正在开发一个应用程序,该应用程序将为设备提供接口。运行该应用程序的安卓设备将连接到设备上,并仅用于控制设备。我正在开发的应用程序将是唯一一个在专用Android设备上运行的应用程序。

请求的功能之一是让应用程序在Android设备启动时自动启动。我通过检测ACTION_BOOT_COMPLETED意图实现了这个功能,如本线程所述。然而,我看到了另一种推荐的方法,即将应用程序作为主屏幕,如本文所述。

我意识到,通过检测ACTION_BOOT_COMPLETED来实现自动启动功能,就像我所做的那样,可能不是Android应用程序的最佳方法。但是,如前所述,在我的情况下,我正在开发的应用将是设备上唯一使用的应用。考虑到这一点,我采取的方法合理吗?或者是否有更好的方法来实现自动启动功能?

请注意,其中一个考虑因素是配置Android设备的便利性。对于我所采取的方法,将需要一个手动步骤,启动应用程序的第一次。但是,如果我采用另一种方法将应用程序作为主屏幕,那么看起来还需要手动步骤,所以在这方面,采用这种方法没有任何优势。

谢谢你的帮助!

编辑:我试过通过修改AndroidManifest.xml将应用程序设置为主屏幕,Holmes建议如下。以下是我迄今为止在比较这两种方法时发现的:(1)使用主屏幕方法的代码要简单得多,只需要对AndroidManifest.xml做一个小的调整,而不是更多的实质性改变和一个额外的BroadcastReceiver类。(2)使用主屏幕方法设置过程稍微复杂一些,因为你需要做的不仅仅是打开应用程序,但并不复杂。(3)由于用户无法使用默认主屏幕启动其他应用程序,主屏幕方法可以更好地将用户限制在单个应用程序中。根据这些结果,我可能会使用主屏幕方法。

我目前正在开发一个专用设备应用程序,我可以为您提供一些可能有用的细节。

收听ACTION_BOOT_COMPLETED与等待设备完成启动,启动它的Home应用程序然后启动您的应用程序相同。

我相信你不希望你的最终客户端看到主屏幕,我也不希望。

但是,您可以将应用程序定义为Android设备的HOME应用程序。一旦它完成引导,它将成为运行中第一个可见的应用程序。
<activity....>
<!-- Put this filter inside the activity you want to make the Home screen -->
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.HOME" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

注意:如果你需要你的设备在你的专用设备打开时自动启动,试着从Android上取下电池并直接连接。这确实与你的问题无关,但在我看来,可能对你的项目有帮助。

根据你的问题,我会使该应用程序作为启动器(又名主屏幕)。在这种情况下,一旦应用程序被设置为设备启动器,就不需要收听ACTION_BOOT_COMPLETED了。

对于您的需要,ACTION_BOOT_COMPLETED是非常好的。记住,应用程序需要手动启动至少一次,ACTION_BOOT_COMPLETED才能在3.0+

的设备上工作。

相关内容

最新更新