Тестирование конфигурации спутника Android Wear в эмуляторе

У меня возникли некоторые проблемы с тестированием / использованием моего действия по настройке портативного компаньона для разрабатываемого циферблата Android Wear. Хотя я не новичок в разработке для Android в целом, это мое первое приложение для наблюдения за лицом, поэтому, если некоторые из этих вопросов очевидны, пожалуйста, направьте меня к соответствующей документации.

У меня есть мой носимый модуль и портативный модуль. В настоящее время портативный модуль выполняет только одну операцию в качестве сопутствующей конфигурации.

У меня есть два вопроса:

  1. Как я могу запустить сопутствующую конфигурацию при тестировании / отладке с помощью эмулятора износа, подключенного к портативному устройству, подключенному через USB к компьютеру? При выборе циферблата на изнашивающемся устройстве значок "шестеренка" не появляется (однако, я предполагаю, что это связано с тем, что нет никаких действий по конфигурированию носимых устройств, а только действий по настройке сопутствующего устройства, но я, конечно, могу ошибаться).

На портативном устройстве внутри приложения Android Wear у трех точек на циферблате есть пункт меню "Установить приложение настроек", но эта опция просто запускает магазин воспроизведения и, естественно, не может найти приложение для установки параметров для установки. Как запустить настройку параметров / сопутствующих действий на портативном устройстве.

  1. Как мне проверить / отладить эти модули на моих реальных устройствах? Я хотел бы просто загрузить ручной модуль на свое телефонное устройство через 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>

1 ответ

Я сейчас работаю над некоторым приложением Android Wear, и я надеюсь, что мой ответ поможет вам:

  1. Я думаю, что вы должны проверить, если телефон подключен через USB-кабель в паре с вашим эмулятором износа, по моему мнению, эти устройства не сопряжены друг с другом.

  2. Я использую Eclipse для разработки приложения износа, поэтому в моем случае просто запустите приложение износа непосредственно в Eclipse, и оно установит приложение в эмулятор износа (Android Virtual Device).

Одна вещь, которую я хочу, чтобы вы знали, это то, что часы, доступные только на часах, имеют прошивку 5.0 и выше, поэтому убедитесь, что при создании эмулятора износа вы должны выбрать целевое устройство как минимум 5.0.1, иначе вы не увидите там свой циферблат.

Другие вопросы по тегам