| page.title=Providing Configuration Activities |
| |
| @jd:body |
| |
| <div id="tb-wrapper"> |
| <div id="tb"> |
| <h2>This lesson teaches you to</h2> |
| <ol> |
| <li><a href="#Intent">Specify an Intent for Configuration Activities</a></li> |
| <li><a href="#WearableActivity">Create a Wearable Configuration Activity</a></li> |
| <li><a href="#CompanionActivity">Create a Companion Configuration Activity</a></li> |
| </ol> |
| <h2>You should also read</h2> |
| <ul> |
| <li><a href="{@docRoot}design/wear/watchfaces.html">Watch Faces for Android Wear</a></li> |
| </ul> |
| </div> |
| </div> |
| |
| <p>When users install a handheld app that contains a <a |
| href="{@docRoot}training/wearables/apps/index.html">wearable app</a> with watch faces, these |
| watch faces become available in the Android Wear companion app on the companion device and in |
| the watch face picker on the wearable. Users can choose the active watch face for their wearable |
| device by selecting it on the companion app or using the watch face picker on the wearable |
| device.</p> |
| |
| <p>Some watch faces support configuration parameters to let users customize how the watch face |
| looks and behaves. For example, some watch faces let users pick a custom background color, and |
| watch faces that tell time for two different time zones can let users select which time zones |
| they are interested in.</p> |
| |
| <p>Watch faces that support configuration parameters can let users customize a watch face using |
| an activity in the wearable app, an activity on the handheld app, or both. Users can start the |
| wearable configuration activity on the wearable device, and they can start the companion |
| configuration activity from the Android Wear companion app.</p> |
| |
| <p>The digital watch face from the <em>WatchFace</em> sample in the Android SDK demonstrates how to |
| implement handheld and wearable configuration activities and how to update a watch face in |
| response to configuration changes. This sample is located in the |
| <code>android-sdk/samples/android-21/wearable/WatchFace</code> directory.</p> |
| |
| |
| |
| <h2 id="Intent">Specify an Intent for Configuration Activities</h2> |
| |
| <p>If your watch face includes configuration activities, add the following metadata entries to |
| the service declaration in the manifest file of the wearable app:</p> |
| |
| <pre> |
| <service |
| android:name=".DigitalWatchFaceService" ... /> |
| <!-- companion configuration activity --> |
| <meta-data |
| android:name= |
| "com.google.android.wearable.watchface.companionConfigurationAction" |
| android:value= |
| "com.example.android.wearable.watchface.CONFIG_DIGITAL" /> |
| <!-- wearable configuration activity --> |
| <meta-data |
| android:name= |
| "com.google.android.wearable.watchface.wearableConfigurationAction" |
| android:value= |
| "com.example.android.wearable.watchface.CONFIG_DIGITAL" /> |
| ... |
| </service> |
| </pre> |
| |
| <p>Provide values for these entries that are preceded by the package name of your app. |
| Configuration activities register intent filters for this intent, and the system fires this |
| intent when users want to configure your watch face.</p> |
| |
| <p>If your watch face only includes a companion or a wearable configuration activity, you only |
| need to include the corresponding metadata entry from the example above.</p> |
| |
| |
| |
| <h2 id="WearableActivity">Create a Wearable Configuration Activity</h2> |
| |
| <p>Wearable configuration activities provide a limited set of customization choices for a |
| watch face, because complex menus are hard to navigate on smaller screens. Your wearable |
| configuration activity should provide binary choices and just a few selections to customize |
| the main aspects of your watch face.</p> |
| |
| <p>To create a wearable configuration activity, add a new activity to your wearable app module |
| and declare the following intent filter in the manifest file of the wearable app:</p> |
| |
| <pre> |
| <activity |
| android:name=".DigitalWatchFaceWearableConfigActivity" |
| android:label="@string/digital_config_name"> |
| <intent-filter> |
| <action android:name= |
| "com.example.android.wearable.watchface.CONFIG_DIGITAL" /> |
| <category android:name= |
| "com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| </activity> |
| </pre> |
| |
| <p>The name of the action in this intent filter must match the intent name you defined in |
| <a href="#Intent">Specify an Intent for Configuration Activities</a>.</p> |
| |
| <p>In your configuration activity, build a simple UI that provides selections for users to |
| customize your watch face. When users make a selection, use the <a |
| href="{@docRoot}training/wearables/data-layer/index.html">Wearable Data Layer API</a> to |
| communicate the configuration change to the watch face activity.</p> |
| |
| <p>For more details, see the <code>DigitalWatchFaceWearableConfigActivity</code> and |
| <code>DigitalWatchFaceUtil</code> classes in the <em>WatchFace</em> sample.</p> |
| |
| |
| |
| <h2 id="CompanionActivity">Create a Companion Configuration Activity</h2> |
| |
| <p>Companion configuration activities give users access to the full set of configuration choices |
| for a watch face, because it is easier to interact with complex menus on the larger screen of |
| a handheld device. For example, a configuration activity on a handheld device enables you to |
| present users with elaborate color pickers to select the background color of a watch face.</p> |
| |
| <p>To create a companion configuration activity, add a new activity to your handheld app module and |
| declare the same intent filter for this activity as the one in <a href="#WearableActivity">Create |
| a Wearable Configuration Activity</a>.</p> |
| |
| <p>In your configuration activity, build a UI that provides options to customize all the |
| configurable elements of your watch face. When users make a selection, use the <a |
| href="{@docRoot}training/wearables/data-layer/index.html">Wearable Data Layer API</a> to |
| communicate the configuration change to the watch face activity.</p> |
| |
| <p>For more details, see the <code>DigitalWatchFaceCompanionConfigActivity</code> class in the |
| <em>WatchFace</em> sample.</p> |
| |
| |
| |
| <h2 id="Listener">Create a Listener Service in the Wearable App</h2> |
| |
| <p>To receive updated configuration parameters from the configuration activities, create a |
| service that implements the <code>WearableListenerService</code> interface from the <a |
| href="{@docRoot}training/wearables/data-layer/index.html">Wearable Data Layer API</a> in your |
| wearable app. Your watch face implementation can redraw the watch face when the configuration |
| parameters change.</p> |
| |
| <p>For more details, see the <code>DigitalWatchFaceConfigListenerService</code> and |
| <code>DigitalWatchFaceService</code> classes in the <em>WatchFace</em> sample.</p> |