title: How to limit Android Wear apps to specific devices?
body: <p>I'm developing an Android Wear app which collects vital data from sensors for analyses. It's still an infant project and we only want it to work on several specific wearable devices.</p>
  
  <p>However the wearable app was reject by Google Play after I published an alpha release on it due to "incompatibility with various wearable devices".</p>
  
  <blockquote>
    <p>Basic functionality of your app does not work as described. Be sure to test your app on a variety of different Android Wear devices and configurations.</p>
  </blockquote>
  
  <p>In the Developer Console, the "Manage devices" button works only for the handheld one. All wearable devices have been marked as "unsupported".</p>
  
  <p><a href="https://i.stack.imgur.com/Qrjwa.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Qrjwa.png" alt="dev console screenshot"></a></p>
  
  <p>How do you specify the supported device for Android Wear apps?</p>
  
  <p><strong>Update (Manifest)</strong></p>
  
  <p>Phone:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="tsundere.frederick.myapp"&gt;
  
      &lt;uses-permission android:name="android.permission.WAKE_LOCK" /&gt;
      &lt;uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /&gt;
      &lt;uses-permission android:name="android.permission.BODY_SENSORS" /&gt;
      &lt;uses-permission android:name="android.permission.INTERNET" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;
      &lt;uses-permission android:name="android.permission.LOCATION_HARDWARE" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /&gt;
      &lt;uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /&gt;
  
      &lt;application
          android:name=".Application"
          android:allowBackup="true"
          android:icon="@mipmap/ic_launcher"
          android:label="@string/app_name"
          android:supportsRtl="true"
          android:theme="@style/AppTheme"&gt;
          &lt;activity
              android:name=".MainActivity"
              android:label="@string/app_name"
              android:launchMode="singleTop"
              android:theme="@style/AppTheme.NoActionBar"&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="android.intent.action.MAIN" /&gt;
  
                  &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
              &lt;/intent-filter&gt;
          &lt;/activity&gt;
  
          &lt;meta-data
              android:name="com.google.android.gms.version"
              android:value="@integer/google_play_services_version" /&gt;
  
          &lt;service
              android:name=".listener.SensorListener"
              android:enabled="true"
              android:exported="true"&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="com.google.android.gms.wearable.DATA_CHANGED" /&gt;
  
                  &lt;data
                      android:host="*"
                      android:pathPrefix="/myapp_sensor"
                      android:scheme="wear" /&gt;
              &lt;/intent-filter&gt;
          &lt;/service&gt;
          &lt;service
              android:name=".listener.OpenPhoneListener"
              android:enabled="true"
              android:exported="true"&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" /&gt;
  
                  &lt;data
                      android:host="*"
                      android:pathPrefix="/myapp_open_phone"
                      android:scheme="wear" /&gt;
              &lt;/intent-filter&gt;
          &lt;/service&gt;
  
          &lt;activity android:name=".LabelActivity" /&gt;
          &lt;activity android:name=".SettingActivity" /&gt;
      &lt;/application&gt;
  
  &lt;/manifest&gt;
  </code></pre>
  
  <p>Wear:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="tsundere.frederick.myapp"&gt;
  
      &lt;uses-feature android:name="android.hardware.type.watch"/&gt;
  
      &lt;uses-permission android:name="android.permission.WAKE_LOCK"/&gt;
      &lt;uses-permission android:name="android.permission.BODY_SENSORS"/&gt;
  
      &lt;application
              android:name=".Application"
              android:allowBackup="true"
              android:icon="@mipmap/ic_launcher"
              android:label="@string/app_name"
              android:supportsRtl="true"
              android:theme="@android:style/Theme.DeviceDefault"&gt;
          &lt;uses-library
                  android:name="com.google.android.wearable"
                  android:required="false"/&gt;
  
          &lt;activity
                  android:name=".MainActivity"
                  android:label="@string/app_name"
                  android:theme="@android:style/Theme.DeviceDefault.Light"&gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="android.intent.action.MAIN"/&gt;
  
                  &lt;category android:name="android.intent.category.LAUNCHER"/&gt;
              &lt;/intent-filter&gt;
          &lt;/activity&gt;
  
          &lt;service
                  android:name=".service.MinimalSensorService"
                  android:enabled="true"
                  android:exported="false"&gt;
          &lt;/service&gt;
      &lt;/application&gt;
  
  &lt;/manifest&gt;
  </code></pre>