IOT_LAUNCHER activity 开机不启动
IOT_LAUNCHER activity not starting on boot
我在 Android 上为 运行 构建了一个 Xamarin 应用程序。我正在尝试 运行 它在 Raspberry Pi 3 上 Android 事情。我已经刷新了默认图像,当连接到 pi 时,我可以通过 Visual Studio 成功 运行 应用程序。
但是,我无法通过 adb 安装或创建捆绑包并通过 Android Things 控制台构建来启动应用程序。我相信我已经正确设置了清单。
我的 MainActivity 具有正确的属性:
Activity(Label = "PropertyVision", MainLauncher = true, Theme = "@style/PVLightTheme")]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { Intent.CategoryLauncher })]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { Intent.CategoryDefault })]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { "android.intent.category.IOT_LAUNCHER" })]
我可以通过 ADB 安装和 运行 APK,当撤回时我可以分析 APK 并看到清单确实具有正确的 intent-filters 但是当我重新启动设备时我得到了标准Android 事物仪表板。
<activity
android:theme="@ref/0x7f0d0199"
android:label="PropertyVision"
android:name="md5cbdbb5fa2925f03038c91923122a6627.MainActivity">
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.IOT_LAUNCHER" />
</intent-filter>
</activity>
使用 0.6.0 预览版。当我创建 bundle.zip 并通过 Android Things 控制台创建新版本时,它也会启动到标准仪表板,但我可以通过 adb 启动我的应用程序。
我哪里错了?
您希望您的清单在应用程序标记中包含 两个 个意图过滤器,一个用于调试,一个用于 IoT 启动。
Android Things expects one application to expose a "home activity" in its manifest as the main entry point for the system to automatically launch on boot. This activity must contain an intent filter that includes both CATEGORY_DEFAULT and IOT_LAUNCHER.
要通过 Activity
属性执行此操作:
[Activity(Label = "KeyPadEntry", Icon = "@mipmap/icon")]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { Intent.CategoryLauncher })]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { "android.intent.category.IOT_LAUNCHER", Intent.CategoryDefault })]
public class MainActivity : Activity
{
~~~
}
生成的清单在应用程序标记中应如下所示:
<activity android:name="md5228f519fe41cfb3cf46c839bf977fe9b.MainActivity"">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<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 上为 运行 构建了一个 Xamarin 应用程序。我正在尝试 运行 它在 Raspberry Pi 3 上 Android 事情。我已经刷新了默认图像,当连接到 pi 时,我可以通过 Visual Studio 成功 运行 应用程序。
但是,我无法通过 adb 安装或创建捆绑包并通过 Android Things 控制台构建来启动应用程序。我相信我已经正确设置了清单。
我的 MainActivity 具有正确的属性:
Activity(Label = "PropertyVision", MainLauncher = true, Theme = "@style/PVLightTheme")]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { Intent.CategoryLauncher })]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { Intent.CategoryDefault })]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { "android.intent.category.IOT_LAUNCHER" })]
我可以通过 ADB 安装和 运行 APK,当撤回时我可以分析 APK 并看到清单确实具有正确的 intent-filters 但是当我重新启动设备时我得到了标准Android 事物仪表板。
<activity
android:theme="@ref/0x7f0d0199"
android:label="PropertyVision"
android:name="md5cbdbb5fa2925f03038c91923122a6627.MainActivity">
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action
android:name="android.intent.action.MAIN" />
<category
android:name="android.intent.category.IOT_LAUNCHER" />
</intent-filter>
</activity>
使用 0.6.0 预览版。当我创建 bundle.zip 并通过 Android Things 控制台创建新版本时,它也会启动到标准仪表板,但我可以通过 adb 启动我的应用程序。
我哪里错了?
您希望您的清单在应用程序标记中包含 两个 个意图过滤器,一个用于调试,一个用于 IoT 启动。
Android Things expects one application to expose a "home activity" in its manifest as the main entry point for the system to automatically launch on boot. This activity must contain an intent filter that includes both CATEGORY_DEFAULT and IOT_LAUNCHER.
要通过 Activity
属性执行此操作:
[Activity(Label = "KeyPadEntry", Icon = "@mipmap/icon")]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { Intent.CategoryLauncher })]
[IntentFilter(new[] { Intent.ActionMain }, Categories = new[] { "android.intent.category.IOT_LAUNCHER", Intent.CategoryDefault })]
public class MainActivity : Activity
{
~~~
}
生成的清单在应用程序标记中应如下所示:
<activity android:name="md5228f519fe41cfb3cf46c839bf977fe9b.MainActivity"">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<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>