Android Things意图启动

时间:2016-12-13 17:39:56

标签: android android-things

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

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

6 个答案:

答案 0 :(得分: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>

(&lt; DP8曾经需要IOT_LAUNCHER已被弃用)

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

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

script to uninstall example

使用AndroidThings的最新版本,IntentChooser将不会再显示,但是当安装的其中一个应用程序被选中打开而其他应用程序没有打开时,问题可能会持续存在。

答案 1 :(得分:6)

添加到AndroidManifest.xml

开发者预览版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 Release Candidate 16 April 2018

答案 2 :(得分: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>

答案 3 :(得分:3)

你试过他们的演示应用吗?在编写自己的应用之前,请先试用first。这应该按预期工作。稍后随意改变。

不要从代码的 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>

答案 4 :(得分:0)

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

为活动添加意图过滤器时,必须包含同时包含CATEGORY_DEFAULTIOT_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应用中检查Home activity support Android事件。

答案 5 :(得分:0)

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

adb uninstall <packet>