Android Things предназначен для загрузки

Когда я перезагружаюсь после развертывания приложения на Android Things, приложение не запускается.

Есть ли конкретное намерение запускать приложение при загрузке?


person proppy    schedule 13.12.2016    source источник


Ответы (6)


Если на вашем устройстве 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 больше не будет отображаться, однако проблема может сохраняться, поскольку одно из установленных приложений выбрано для открытия, а другие нет.

person Blundell    schedule 08.01.2017
comment
Я обнаружил, что процесс под названием IoTLauncher решил запустить первое действие с целью запуска: 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
comment
Есть ли способ восстановить удаленную функциональность App Chooser - это на самом деле очень полезно при разработке и при отсутствии какого-либо домашнего экрана. - person Carl Whalley; 04.09.2017
comment
Было бы довольно легко написать код самостоятельно (нет, вы не можете восстановить его), вы можете посмотреть исходный код приложения Launcher и использовать диспетчер пакетов для поиска приложений, а затем создать диалоговое окно самостоятельно. . Это может быть весело, а может быть пустой тратой времени :-) - person Blundell; 05.09.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 г.

person fishjd    schedule 16.05.2018
comment
Сначала я предполагаю, что что-то вроде Бланделла в ответе выше объяснил и попытался удалить все приложения с этими фильтрами, но это не помогло. Изменив фильтр намерений, как вы написали, приложение успешно встряло после перезагрузки устройства. Я тестирую это на AndroidThings 0.8, а тем временем я обновился до 1.0.0. Так что спасибо мужик! - person msamardzic; 29.05.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>
person proppy    schedule 13.12.2016

Вы пробовали их демо-приложение? Попробуйте этот сначала, прежде чем писать собственное приложение. Это должно работать, как ожидалось. Позже меняйте как хотите.

Просто не удаляйте эту часть из 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>
person Riddhiman Adib    schedule 14.12.2016

Чтобы обеспечить поддержку 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.

person pRaNaY    schedule 18.12.2016

Ответ от пользователя fishjd, помогите мне. Если это не сработало, попробуйте удалить приложение с помощью adb и переустановить его.

adb uninstall <packet>
person msamardzic    schedule 29.05.2018