Когда я перезагружаюсь после развертывания приложения на Android Things, приложение не запускается.
Есть ли конкретное намерение запускать приложение при загрузке?
Когда я перезагружаюсь после развертывания приложения на Android Things, приложение не запускается.
Есть ли конкретное намерение запускать приложение при загрузке?
Если на вашем устройстве 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, который удалите все приложения, которые имеют указанный выше фильтр намерений, чтобы вы могли начать снова и установить только 1 приложение, поэтому это приложение будет запускаться при загрузке.
В последней версии AndroidThings IntentChooser больше не будет отображаться, однако проблема может сохраняться, поскольку одно из установленных приложений выбрано для открытия, а другие нет.
01-01 00:00:59.516 639-639/com.android.iotlauncher D/IoTLauncher: 2 activities found with launcher intent 01-01 00:00:59.516 639-639/com.android.iotlauncher W/IoTLauncher: Multiple applications with launcher intent found. Launching first found 01-01 00:00:59.624 639-639/com.android.iotlauncher I/IoTLauncher: Software Version 7.0
- person remcoder; 08.02.2017
Добавить в 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>
До Developer Preview 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 от 16 апреля 2018 г.
Следующие 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>
Вы пробовали их демо-приложение? Попробуйте этот сначала, прежде чем писать собственное приложение. Это должно работать, как ожидалось. Позже меняйте как хотите.
Просто не удаляйте эту часть из 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>
Чтобы обеспечить поддержку 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>
Check Home activity support for Android Things in android app.
Ответ от пользователя fishjd, помогите мне. Если это не сработало, попробуйте удалить приложение с помощью adb и переустановить его.
adb uninstall <packet>