Тестирование конфигурации сопутствующего циферблата 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>

person cpjolicoeur    schedule 21.06.2015    source источник


Ответы (1)


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

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

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

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

person user5039278    schedule 23.06.2015
comment
Спасибо, но ваши ответы действительно неверны или не применимы. Я могу без проблем подключить свой телефон, подключенный через USB, к моему эмулятору. Это не проблема. Кроме того, я могу без проблем установить приложение Wear на эмулятор. У меня нет проблем с запуском фактического циферблата на самом эмуляторе. - person cpjolicoeur; 23.06.2015