【问题标题】:How to directly boot your android app straight from splash screen, without showing the home screen?如何直接从启动屏幕直接启动您的 android 应用程序,而不显示主屏幕?
【发布时间】:2019-07-21 17:42:08
【问题描述】:

我正在准备将 Android 平板电脑作为制造产品的一部分。平板电脑变成了操作机器、显示一些实时数据以及通过蓝牙将一些文件从平板电脑移动到手机的专用工具。出于各种原因,包括遗留问题,我们希望坚持使用 Android 平板电脑。 我将在“kiosk”模式下运行该应用程序,这本身根本不是问题。我什至设置了应用程序来捕捉android.intent.action.BOOT_COMPLETED 自动启动应用程序的意图。

唯一的问题是在重启平板电脑时,在它显示了我们的自定义启动屏幕后,在启动我们的应用程序之前它会短暂显示主屏幕,允许用户通过启动其他应用程序、更改 Android 系统设置等进行干预。 我想通过将启动屏幕延长到应用程序启动或禁用/删除平板电脑的主屏幕(首选选项)来解决此问题。

我使用有根设备。如果绝对必要,自定义 ROM 将是一个选项,但我不想走这条路。 我完全被困在这一点上,任何帮助/想法/选项将不胜感激。

【问题讨论】:

  • 您可以将您的应用设为启动器应用。这意味着您的应用将成为主屏幕。
  • 这听起来很有希望而且非常简单,请详细说明如何实现这一点 =)

标签: android root homescreen kiosk-mode


【解决方案1】:

在 Android 中,可以创建启动器应用。这可用于自定义 Android 设备的主屏幕。此应用程序将取代您的主屏幕。在正常的启动器应用程序中,您希望实现打开其他应用程序的行为。但这在您的情况下不是必需的,因为您想创建一个自助服务终端应用程序。

对您来说,只需将这两行添加到您的 mainActivity 的意图过滤器中即可:

<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />

你的结果会是这样的:

 <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

当您按下主页按钮时,您将可以选择默认启动器应用程序。将您的应用程序标记为默认启动器,它将取代主屏幕。 您还可以在设备的设置中更改启动器应用程序。

您可能还想实现auto-restart,因为如果您的启动器应用程序崩溃,用户可以选择他想要使用的启动器应用程序并可以退出信息亭模式。

【讨论】:

  • 我无法想象答案会如此简单明了。非常感谢,您为我节省了几天的精力!
  • 如此简单且有效,谢谢。
猜你喜欢
  • 2016-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多