我是Android编程的新手,正在开发一个可以为设备提供界面的应用。应用程序将运行的Android设备将附加到设备,仅用于控制设备。我正在处理的应用程序将是唯一一款在专用Android设备上运行的应用程序。
要求的功能之一是让Android设备启动时自动启动应用。我已经通过检测ACTION_BOOT_COMPLETED意图来实现此功能,如this thread中所述。但是,我已经看到了建议将应用程序设置为主屏幕的替代方法,如this thread中所述。
我意识到通过检测ACTION_BOOT_COMPLETED实现自动启动功能,正如我所做的那样,可能不是一般的Android应用程序的最佳方法。但是,如上所述,在我的情况下,我正在开发的应用程序将是设备上唯一使用的应用程序。鉴于此,我采取的方法是否合理?或者有更好的方法来实现自动启动功能吗?
请注意,一个考虑因素是易于配置Android设备。对于我正在采用的方法,将需要一个手动步骤,即第一次启动应用程序。但是,如果我采用另一种方法将应用程序作为主屏幕,那么看起来还需要手动步骤,因此在这方面采用这种方法没有任何优势。
感谢您的帮助!
编辑: 我已经尝试通过修改AndroidManifest.xml将应用程序设置为主屏幕,如下面的Holmes所示。以下是我在两种方法的比较中发现的结果:(1)使用主屏幕方法的代码更简单,只需要对AndroidManifest.xml进行微调,而不是进行更实质性的更改和额外的BroadcastReceiver类。 (2)使用主屏幕方法设置程序稍微复杂一些,因为你不仅要打开应用程序,还要做更多复杂的操作。 (3)主屏幕方法可以更好地将用户限制在单个应用程序中,因为他无法使用默认主屏幕来启动其他应用程序。根据这些结果,我可能会使用主屏幕方法。
答案 0 :(得分:2)
根据您的问题,我会将该应用视为启动器(也称为主屏幕)。在这种情况下,将应用设置为设备启动器后,无需听取 csvFile = files[i].getContentAsString();
。
答案 1 :(得分:2)
我目前正在使用专用设备应用程序,我可以为您提供一些可能有用的详细信息。
倾听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中取出电池并直接连接。这与您的问题无关,但我看到的方式可能对您的项目有所帮助。
答案 2 :(得分:0)
根据您的需要,ACTION_BOOT_COMPLETED非常好。请记住,ACTION_BOOT_COMPLETED至少需要手动启动一次应用程序NEEDS才能在3.0 +
设备上运行