開発中の Android Wear ウォッチフェイスのハンドヘルド コンパニオン構成アクティビティのテスト/使用で問題が発生しています。私は一般的に Android 開発は初めてというわけではありませんが、これは私の最初のウォッチフェイス アプリケーションです。
ウェアラブル モジュールとハンドヘルド モジュールがあります。現在、ハンドヘルド モジュールには、コンパニオン コンフィギュレーションとして 1 つのアクティビティしかありません。
私が持っている2つの質問はこれです:
- USB 経由でコンピューターに接続されたハンドヘルド デバイスに接続されたウェア エミュレーターを使用してテスト/デバッグする場合、コンパニオン構成アクティビティを起動するにはどうすればよいですか? ウェア デバイスでウォッチフェイスを選択すると、「ギア」アイコンが表示されません (ただし、これは、ウェアラブルの構成アクティビティがなく、付随する構成アクティビティがあるためだと思いますが、もちろん間違っている可能性もあります)。
Android Wear アプリケーション内のハンドヘルド デバイスでは、ウォッチフェイスの 3 つのピップに「Install Settings App」のメニュー項目がありますが、このオプションは Play ストアを起動するだけで、当然、インストールする設定アプリが見つかりません。ハンドヘルド デバイスで設定/コンパニオン構成アクティビティを起動するにはどうすればよいですか?
- 実際のデバイスでこれらのモジュールをテスト/デバッグするにはどうすればよいですか? 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>