9

当我将应用程序部署到Android Things后重新启动时,应用程序无法启动。

是否有在启动时启动应用程序的特定意图?

4

6 回答 6

17

如果您的 Android Things 设备安装了多个 应用 程序,这些应用程序都在清单中具有此意图过滤器:

<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>

( < DP8 曾经需要IOT_LAUNCHER,已被弃用)

然后您的应用程序将不会默认启动,而是会显示 Intent Chooser 对话框,并且系统将等待用户输入以选择要运行的应用程序。(无论您是否插入了实际的显示器,都会发生这种情况。如果您没有显示器,它可能会显示为设备只是挂起。)

我在这里写了一个脚本:https ://gist.github.com/blundell/7c0c3bb17898b28fe8122b0dc230af50它将卸载所有具有上述意图过滤器的应用程序,以便您可以重新启动并且只安装了一个应用程序 - 因此此应用程序将在启动时启动.

脚本卸载示例


使用最新版本的 AndroidThings,IntentChooser 将不再显示,但问题可能仍然存在,因为已选择打开已安装的应用程序之一而其他应用程序未选择打开。

于 2017-01-08T21:54:56.887 回答
6

添加AndroidManifest.xml

Developer Preview 0.8 及更高版本(新样式)

<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>

开发者预览版 0.8 之前(旧样式)

<intent-filter>
   <action android:name="android.intent.action.MAIN"/>
   <category android:name="android.intent.category.IOT_LAUNCHER"/>
   <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

请参阅Android Things 候选版本 2018 年 4 月 16 日

于 2018-05-16T16:08:02.390 回答
3

您是否尝试过他们的演示应用程序?在编写自己的应用程序之前先尝试一下。这应该按预期工作。以后随心所欲地改变。

只是不要从代码的AndroidManifest.xml中删除这部分。

<!-- Launch activity automatically on boot -->
<intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.IOT_LAUNCHER"/>
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
于 2016-12-14T05:27:56.690 回答
3

intent-filter需要添加以下内容AndroidManifest.xml

<intent-filter>
   <action android:name="android.intent.action.MAIN"/>
   <category android:name="android.intent.category.IOT_LAUNCHER"/>
   <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
于 2016-12-13T17:41:39.870 回答
0

来自用户fishjd的回答,帮助我。如果这不起作用,请尝试使用 adb 删除应用程序,然后重新安装它

adb uninstall <packet>
于 2018-05-29T12:29:18.433 回答
0

为了在应用程序中提供 Android Things 支持,我们需要为系统定义主入口点以在启动时自动启动。

在为活动添加意图过滤器时,必须包含一个既包含CATEGORY_DEFAULT和 又包含 的意图过滤器IOT_LAUNCHER

<application
android:label="@string/app_name">
<activity android:name=".HomeActivity">
    <!-- Launch activity as default from Android Studio -->
    <!-- For ease of development, this same activity should include a CATEGORY_LAUNCHER intent filter so Android Studio can launch it as the default activity when deploying or debugging. -->
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>

    <!-- Add below intent filter which enable android things support for app -->
    <!-- Launch activity automatically on boot -->
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.IOT_LAUNCHER"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
</activity>

在 android 应用中检查对 Android Things 的Home 活动支持。

于 2016-12-18T16:41:39.797 回答