1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- 3 Copyright (C) 2014 The Android Open Source Project 4 5 Licensed under the Apache License, Version 2.0 (the "License"); 6 you may not use this file except in compliance with the License. 7 You may obtain a copy of the License at 8 9 http://www.apache.org/licenses/LICENSE-2.0 10 11 Unless required by applicable law or agreed to in writing, software 12 distributed under the License is distributed on an "AS IS" BASIS, 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 See the License for the specific language governing permissions and 15 limitations under the License. 16 --> 17 <manifest xmlns:android="http://schemas.android.com/apk/res/android" 18 package="com.example.android.wearable.watchface" > 19 20 <uses-sdk 21 android:minSdkVersion="21" 22 android:targetSdkVersion="23" /> 23 24 <uses-feature android:name="android.hardware.type.watch" /> 25 26 <!-- Required to act as a custom watch face. --> 27 <uses-permission android:name="android.permission.WAKE_LOCK" /> 28 29 <!-- Calendar permission used by CalendarWatchFaceService --> 30 <uses-permission android:name="android.permission.READ_CALENDAR" /> 31 32 <!-- Location permission used by FitDistanceWatchFaceService --> 33 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 34 35 <application 36 android:allowBackup="true" 37 android:icon="@drawable/ic_launcher" 38 android:label="@string/app_name" > 39 40 <meta-data 41 android:name="com.google.android.gms.version" 42 android:value="@integer/google_play_services_version" /> 43 44 <uses-library android:name="com.google.android.wearable" android:required="false" /> 45 46 <service 47 android:name=".AnalogWatchFaceService" 48 android:label="@string/analog_name" 49 android:permission="android.permission.BIND_WALLPAPER" > 50 <meta-data 51 android:name="android.service.wallpaper" 52 android:resource="@xml/watch_face" /> 53 <meta-data 54 android:name="com.google.android.wearable.watchface.preview" 55 android:resource="@drawable/preview_analog" /> 56 <meta-data 57 android:name="com.google.android.wearable.watchface.preview_circular" 58 android:resource="@drawable/preview_analog_circular" /> 59 <meta-data 60 android:name="com.google.android.wearable.watchface.companionConfigurationAction" 61 android:value="com.example.android.wearable.watchface.CONFIG_ANALOG" /> 62 63 <intent-filter> 64 <action android:name="android.service.wallpaper.WallpaperService" /> 65 66 <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> 67 </intent-filter> 68 </service> 69 <service 70 android:name=".SweepWatchFaceService" 71 android:label="@string/sweep_name" 72 android:permission="android.permission.BIND_WALLPAPER" > 73 <meta-data 74 android:name="android.service.wallpaper" 75 android:resource="@xml/watch_face" /> 76 <meta-data 77 android:name="com.google.android.wearable.watchface.preview" 78 android:resource="@drawable/preview_analog" /> 79 <meta-data 80 android:name="com.google.android.wearable.watchface.preview_circular" 81 android:resource="@drawable/preview_analog_circular" /> 82 83 <intent-filter> 84 <action android:name="android.service.wallpaper.WallpaperService" /> 85 86 <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> 87 </intent-filter> 88 </service> 89 <service 90 android:name=".OpenGLWatchFaceService" 91 android:label="@string/opengl_name" 92 android:permission="android.permission.BIND_WALLPAPER" > 93 <meta-data 94 android:name="android.service.wallpaper" 95 android:resource="@xml/watch_face" /> 96 <meta-data 97 android:name="com.google.android.wearable.watchface.preview" 98 android:resource="@drawable/preview_opengl" /> 99 <meta-data 100 android:name="com.google.android.wearable.watchface.preview_circular" 101 android:resource="@drawable/preview_opengl_circular" /> 102 <meta-data 103 android:name="com.google.android.wearable.watchface.companionConfigurationAction" 104 android:value="com.example.android.wearable.watchface.CONFIG_OPENGL" /> 105 106 <intent-filter> 107 <action android:name="android.service.wallpaper.WallpaperService" /> 108 109 <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> 110 </intent-filter> 111 </service> 112 <service 113 android:name=".CardBoundsWatchFaceService" 114 android:label="@string/card_bounds_name" 115 android:permission="android.permission.BIND_WALLPAPER" > 116 <meta-data 117 android:name="android.service.wallpaper" 118 android:resource="@xml/watch_face" /> 119 <meta-data 120 android:name="com.google.android.wearable.watchface.preview" 121 android:resource="@drawable/preview_card_bounds" /> 122 <meta-data 123 android:name="com.google.android.wearable.watchface.preview_circular" 124 android:resource="@drawable/preview_card_bounds_circular" /> 125 <meta-data 126 android:name="com.google.android.wearable.watchface.companionConfigurationAction" 127 android:value="com.example.android.wearable.watchface.CONFIG_CARD_BOUNDS" /> 128 129 <intent-filter> 130 <action android:name="android.service.wallpaper.WallpaperService" /> 131 132 <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> 133 </intent-filter> 134 </service> 135 136 <service 137 android:name=".ComplicationSimpleWatchFaceService" 138 android:enabled="true" 139 android:label="@string/complication_simple" 140 android:permission="android.permission.BIND_WALLPAPER"> 141 <meta-data 142 android:name="android.service.wallpaper" 143 android:resource="@xml/watch_face"/> 144 <meta-data 145 android:name="com.google.android.wearable.watchface.preview" 146 android:resource="@drawable/preview_complication_simple"/> 147 <meta-data 148 android:name="com.google.android.wearable.watchface.preview_circular" 149 android:resource="@drawable/preview_complication_simple"/> 150 <meta-data 151 android:name="com.google.android.wearable.watchface.wearableConfigurationAction" 152 android:value="com.example.android.wearable.watchface.CONFIG_COMPLICATION_SIMPLE"/> 153 154 <intent-filter> 155 <action android:name="android.service.wallpaper.WallpaperService"/> 156 157 <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE"/> 158 </intent-filter> 159 </service> 160 <activity 161 android:name=".ComplicationSimpleConfigActivity" 162 android:label="@string/complication_simple"> 163 <intent-filter> 164 <action android:name="com.example.android.wearable.watchface.CONFIG_COMPLICATION_SIMPLE"/> 165 166 <category android:name="com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION"/> 167 <category android:name="android.intent.category.DEFAULT"/> 168 </intent-filter> 169 </activity> 170 171 <service 172 android:name=".InteractiveWatchFaceService" 173 android:label="@string/interactive_name" 174 android:permission="android.permission.BIND_WALLPAPER" > 175 <meta-data 176 android:name="android.service.wallpaper" 177 android:resource="@xml/watch_face" /> 178 <meta-data 179 android:name="com.google.android.wearable.watchface.preview" 180 android:resource="@drawable/preview_interactive" /> 181 <meta-data 182 android:name="com.google.android.wearable.watchface.preview_circular" 183 android:resource="@drawable/preview_interactive_circular" /> 184 185 <intent-filter> 186 <action android:name="android.service.wallpaper.WallpaperService" /> 187 188 <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> 189 </intent-filter> 190 </service> 191 <service 192 android:name=".DigitalWatchFaceService" 193 android:label="@string/digital_name" 194 android:permission="android.permission.BIND_WALLPAPER" > 195 <meta-data 196 android:name="android.service.wallpaper" 197 android:resource="@xml/watch_face" /> 198 <meta-data 199 android:name="com.google.android.wearable.watchface.preview" 200 android:resource="@drawable/preview_digital" /> 201 <meta-data 202 android:name="com.google.android.wearable.watchface.preview_circular" 203 android:resource="@drawable/preview_digital_circular" /> 204 <meta-data 205 android:name="com.google.android.wearable.watchface.companionConfigurationAction" 206 android:value="com.example.android.wearable.watchface.CONFIG_DIGITAL" /> 207 <meta-data 208 android:name="com.google.android.wearable.watchface.wearableConfigurationAction" 209 android:value="com.example.android.wearable.watchface.CONFIG_DIGITAL" /> 210 211 <intent-filter> 212 <action android:name="android.service.wallpaper.WallpaperService" /> 213 214 <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> 215 </intent-filter> 216 </service> 217 218 <!-- 219 All intent-filters for config actions must include the categories 220 com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION 221 and android.intent.category.DEFAULT. 222 --> 223 224 <activity 225 android:name=".DigitalWatchFaceWearableConfigActivity" 226 android:label="@string/digital_config_name" > 227 <intent-filter> 228 <action android:name="com.example.android.wearable.watchface.CONFIG_DIGITAL" /> 229 230 <category android:name="com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION" /> 231 <category android:name="android.intent.category.DEFAULT" /> 232 </intent-filter> 233 </activity> 234 235 <service 236 android:name=".CalendarWatchFaceService" 237 android:label="@string/calendar_name" 238 android:permission="android.permission.BIND_WALLPAPER" > 239 <meta-data 240 android:name="android.service.wallpaper" 241 android:resource="@xml/watch_face" /> 242 <meta-data 243 android:name="com.google.android.wearable.watchface.preview" 244 android:resource="@drawable/preview_calendar" /> 245 <meta-data 246 android:name="com.google.android.wearable.watchface.preview_circular" 247 android:resource="@drawable/preview_calendar_circular" /> 248 249 <intent-filter> 250 <action android:name="android.service.wallpaper.WallpaperService" /> 251 252 <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> 253 </intent-filter> 254 </service> 255 <service android:name=".DigitalWatchFaceConfigListenerService" > 256 <intent-filter> 257 <action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" /> 258 <data android:scheme="wear" android:host="*" android:pathPrefix="/"/> 259 </intent-filter> 260 </service> 261 <service 262 android:name=".FitDistanceWatchFaceService" 263 android:label="@string/fit_distance_name" 264 android:permission="android.permission.BIND_WALLPAPER" > 265 <meta-data 266 android:name="android.service.wallpaper" 267 android:resource="@xml/watch_face" /> 268 <meta-data 269 android:name="com.google.android.wearable.watchface.preview" 270 android:resource="@drawable/preview_distance" /> 271 <meta-data 272 android:name="com.google.android.wearable.watchface.preview_circular" 273 android:resource="@drawable/preview_distance_circular" /> 274 <meta-data 275 android:name="com.google.android.wearable.watchface.companionConfigurationAction" 276 android:value="com.example.android.wearable.watchface.CONFIG_FIT_DISTANCE" /> 277 278 <intent-filter> 279 <action android:name="android.service.wallpaper.WallpaperService" /> 280 281 <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> 282 </intent-filter> 283 </service> 284 <service 285 android:name=".FitStepsWatchFaceService" 286 android:label="@string/fit_steps_name" 287 android:permission="android.permission.BIND_WALLPAPER" > 288 <meta-data 289 android:name="android.service.wallpaper" 290 android:resource="@xml/watch_face" /> 291 <meta-data 292 android:name="com.google.android.wearable.watchface.preview" 293 android:resource="@drawable/preview_fit" /> 294 <meta-data 295 android:name="com.google.android.wearable.watchface.preview_circular" 296 android:resource="@drawable/preview_fit_circular" /> 297 298 <intent-filter> 299 <action android:name="android.service.wallpaper.WallpaperService" /> 300 301 <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" /> 302 </intent-filter> 303 </service> 304 305 <activity 306 android:name=".CalendarWatchFacePermissionActivity" 307 android:label="@string/title_activity_calendar_watch_face_permission" > 308 </activity> 309 310 <service 311 android:name=".provider.RandomNumberProviderService" 312 android:label="@string/complications_provider_random_number" 313 android:icon="@drawable/ic_launcher"> 314 315 <intent-filter> 316 <action android:name="android.support.wearable.complications.ACTION_COMPLICATION_UPDATE_REQUEST"/> 317 </intent-filter> 318 319 <meta-data 320 android:name="android.support.wearable.complications.SUPPORTED_TYPES" 321 android:value="RANGED_VALUE,SHORT_TEXT,LONG_TEXT"/> 322 <!-- 323 When your complication data provider is active, UPDATE_PERIOD_SECONDS specifies how 324 often you want the system to check for updates to the data. In this case, the time is 325 specified to a relatively short 120 seconds, so we can observe the result of this code 326 lab. In everyday use, developers should consider intervals in the order of minutes. 327 Also, remember that this is only a guidance for the system. Android Wear may update less 328 frequently. 329 330 If your app needs to push updates instead of updating on a regular schedule, you should 331 set this value to 0 and use ProviderUpdateRequester.requestUpdate() to trigger an update 332 request when you need one. 333 --> 334 <meta-data 335 android:name="android.support.wearable.complications.UPDATE_PERIOD_SECONDS" 336 android:value="120"/> 337 </service> 338 </application> 339 340 </manifest> 341