У меня возникли проблемы с тестированием/использованием действий по настройке портативного компаньона для циферблата Android Wear, который я разрабатываю. Хотя я не новичок в разработке Android в целом, это мое первое приложение для циферблата, поэтому, если некоторые из этих вопросов очевидны, отправьте меня к соответствующей документации.
У меня есть носимый модуль и портативный модуль. В настоящее время портативный модуль имеет только одно действие в качестве сопутствующей конфигурации.
У меня два вопроса:
- При тестировании/отладке через эмулятор износа, подключенный к портативному устройству, подключенному через USB к компьютеру, как я могу запустить действие по настройке компаньона? При выборе циферблата на носимом устройстве значок «шестеренка» не появляется (однако я предполагаю, что это связано с тем, что нет действия по настройке носимого устройства, а просто действие по настройке компаньона, но я могу ошибаться, конечно).
На портативном устройстве внутри приложения Android Wear три точки на циферблате имеют пункт меню «Установить приложение настроек», но эта опция просто запускает магазин игр и, естественно, не может найти приложение настроек для установки. Как я могу запустить действия по настройке параметров/компаньона на портативном устройстве.
- Как мне протестировать/отладить эти модули на моих реальных устройствах? Я хотел бы просто загрузить портативный модуль на свое телефонное устройство через Android Studio и загрузить носимый модуль на подключенное носимое устройство. Каковы правильные шаги для достижения этого, потому что я, кажется, не в состоянии это сделать?
Я предположил, что выбираю активность портативного модуля, а затем «Выполнить». В средстве выбора устройства я выбираю подключенное портативное устройство, и кажется, что все работает до конца, но циферблат не отображается в приложении Android Wear на устройстве или на устройстве физического износа.
**** ОБНОВИТЬ ****
Кажется, я могу нормально настроить компаньон, когда загружаю приложение на настоящие носимые устройства, подключенные через отладку Bluetooth.
adb forward tcp:4444 localabstract:/adb-hub
adb connect localhost:4444
Еще не через эмулятор (если это возможно)
Для справки, вот файлы манифеста. Я очистил несколько фрагментов данных только для конфиденциальности в этом проекте, но ничего важного не должно быть упущено.
Носимый манифест:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.FOOBAR.android.FOOBAR" >
<uses-feature android:name="android.hardware.type.watch" />
<!-- Required to act as a custom watch face. -->
<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.DeviceDefault" >
<service
android:name=".WatchfaceService"
android:label="@string/my_analog_name"
android:permission="android.permission.BIND_WALLPAPER" >
<meta-data
android:name="android.service.wallpaper"
android:resource="@xml/watch_face" />
<meta-data
android:name="com.google.android.wearable.watchface.preview"
android:resource="@drawable/preview_accuweather" />
<meta-data
android:name="com.google.android.wearable.watchface.preview_circular"
android:resource="@drawable/preview_accuweather" />
<meta-data
android:name="com.google.android.wearable.watchface.companionConfigurationAction"
android:value="com.FOOBAR.android.FOOBAR.watchface.CONFIG_HANDHELD" />
<intent-filter>
<action android:name="android.service.wallpaper.WallpaperService" />
<category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" />
</intent-filter>
</service>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
</application>
</manifest>
Ручной манифест:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.FOOBAR.android.FOOBAR" >
<uses-sdk android:minSdkVersion="18"
android:targetSdkVersion="21" />
<!-- Permissions required by the wearable app -->
<uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- All intent-filters for config actions must include the categories
com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION and
android.intent.category.DEFAULT. -->
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".HandheldConfig"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.FOOBAR.android.FOOBAR.watchface.CONFIG_HANDHELD" />
<category android:name="com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!--
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
-->
</application>
</manifest>