#android #wear-os
#Android #wear-os
Вопрос:
Я пытаюсь заставить пользовательский циферблат часов работать, но когда я упаковываю приложение с помощью мобильного APK-файла и устанавливаю подписанный мобильный APK-файл на свой телефон, я получаю следующее сообщение об ошибке в моем logcat, когда wear apk пытается установить на часы
1149-1159/? E/WearablePkgInstaller﹕ Package install failed com.ptrprograms.wearcustomwatchface, returnCode -104
Кто-нибудь знает, где я могу найти список кодов возврата, чтобы я мог выяснить, что происходит? Единственные отличия моего кода от базового проекта wear, созданного Android Studio, заключаются в манифестах:
wear manifest:
<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
mobile manifest:
<activity
android:name=".CustomWatchFaceActivity"
android:label="@string/app_name"
android:enabled="true"
android:taskAffinity=""
android:allowEmbedded="true"
android:theme="@android:style/Theme.DeviceDefault.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.google.android.clockwork.home.category.HOME_BACKGROUND" />
</intent-filter>
<meta-data
android:name="com.google.android.clockwork.home.preview"
android:resource="@drawable/ic_launcher"/>
</activity>
Дополнительная информация — добавлен фильтр намерений категории ЗАПУСКА, и он устанавливается затем, так что, похоже, циферблаты часов прямо сейчас, возможно, потребуется включить и в обычное приложение, но у кого-то, вероятно, есть обходной путь и для этого.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Комментарии:
1. Для тех, кто попадает сюда с аналогичными ошибками кода возврата; android.googlesource.com/platform/frameworks/base/ /f76a50c /…
Ответ №1:
РЕДАКТИРОВАТЬ: Ниже приведен мой новый пост в блоге, в котором объясняется новый интерфейс Watch Face API в Lollipop.
http://toastdroid.com/2014/12/10/developing-a-watch-face-for-android-wear-lollipop/
Убедитесь, что ваш мобильный модуль и модули wear имеют одинаковое название пакета и что мобильное приложение содержит все разрешения, необходимые модулю wear. Кроме того, для watchfaces не требуется разрешение WAKE_LOCK. Вы можете прочитать больше о разработчике watchface в сообщении в блоге, которое я сделал:
http://toastdroid.com/2014/07/18/developing-watchfaces-for-android-wear/
Комментарии:
1. Воспользуйтесь этими ссылками, в них есть все, что вам нужно!
2. @MinceMan Я не могу запустить приложение для носимых устройств Android на симуляторе. Хотите знать, нужно ли сделать что-то особенное, иначе говоря, нам также нужно подключить устройство? У меня создалось впечатление, что простой запуск симулятора приведет к запуску APK и работе в качестве циферблата.
3. На самом деле я бы рекомендовал использовать блокировки пробуждения для циферблатов. Это помогает выполнять обновления при затемненном экране
Ответ №2:
Удалите следующие 2 строки разрешений из вашего wear AndroidManifest.xml файл:
<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
Я считаю, что фильтр намерений необязателен, если вы хотите, чтобы ваше приложение было только циферблатом для часов.
Вот пример приложения Watch, которое я нашел, и вы можете посмотреть на него для справки. https://github.com/kentarosu/AndroidWearAndLIFX
Комментарии:
1. На самом деле проблема в том, что вам нужны эти разрешения в файле манифеста для мобильных устройств. Я уже запустил его пару дней назад и выпустил руководство 🙂 ptrprograms.blogspot.com/2014/07 / … с исходным кодом github.com/PaulTR/AndroidDemoProjects/tree/master /…
Ответ №3:
Просто необходимо добавить разрешения в манифест для мобильных устройств