android - 如何直接从启动画面直接启动你的 android 应用程序,而不显示主屏幕?

标签 android root homescreen kiosk-mode

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

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

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

最佳答案

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

对您来说,只需将这两行代码添加到您的 mainActivity 的 intent-filter 中即可:

<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同样,因为如果您的启动器应用程序崩溃,用户可以选择他想使用的启动器应用程序并可以退出信息亭模式。

关于android - 如何直接从启动画面直接启动你的 android 应用程序,而不显示主屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54915004/

相关文章:

android - 如何从其他 Activity 中调用服务方法

c++ - 帮助求割根 C++

android - 通过/dev/uinput 在 Android 中注入(inject)多点触控手势

android - 如何为 Android 创建自定义主屏幕替换应用程序?

Android:将 fragment 添加到 Activity

java - 从 Google NTP 服务器获取当前日期和时间

macos - 为什么我需要 root 权限才能运行 GDB?

javascript - 尝试在主屏幕网络应用程序中访问 ics 文件时出现“无法下载此文件”

android - 具有动态大小的主屏幕小部件

android - 我可以以编程方式重命名可移动 SD 卡上的文件吗