0

開発中の Android Wear ウォッチフェイスのハンドヘルド コンパニオン構成アクティビティのテスト/使用で問題が発生しています。私は一般的に Android 開発は初めてというわけではありませんが、これは私の最初のウォッチフェイス アプリケーションです。

ウェアラブル モジュールとハンドヘルド モジュールがあります。現在、ハンドヘルド モジュールには、コンパニオン コンフィギュレーションとして 1 つのアクティビティしかありません。

私が持っている2つの質問はこれです:

  1. USB 経由でコンピューターに接続されたハンドヘルド デバイスに接続されたウェア エミュレーターを使用してテスト/デバッグする場合、コンパニオン構成アクティビティを起動するにはどうすればよいですか? ウェア デバイスでウォッチフェイスを選択すると、「ギア」アイコンが表示されません (ただし、これは、ウェアラブルの構成アクティビティがなく、付随する構成アクティビティがあるためだと思いますが、もちろん間違っている可能性もあります)。

Android Wear アプリケーション内のハンドヘルド デバイスでは、ウォッチフェイスの 3 つのピップに「Install Settings App」のメニュー項目がありますが、このオプションは Play ストアを起動するだけで、当然、インストールする設定アプリが見つかりません。ハンドヘルド デバイスで設定/コンパニオン構成アクティビティを起動するにはどうすればよいですか?

  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>
4

1 に答える 1

0

あなたの2つの質問について、私の答えがあなたに役立つことを願っています:

  1. USB ケーブル経由で接続されている電話が Wear エミュレーターとペアリングされているかどうかを確認する必要があると思います。私の意見では、これらのデバイスは互いにペアリングされていません。

  2. Eclipse を使用して Wear アプリを開発しているため、私の場合は、Eclipse 上で Wear アプリを直接実行するだけで、アプリが Wear エミュレーター (Android Virtual Device) にインストールされます。

1 つ知っておいていただきたいのは、ウォッチフェイスはファームウェア 5.0 以降のウォッチでのみ使用できることです。したがって、ウェア エミュレータを作成するときは、デバイスのターゲットが 5.0.1 以上であることを確認してください。そうしないと、そこにウォッチフェイスが表示されません。

于 2015-06-23T08:10:06.530 に答える