0

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.

However the wearable app was reject by Google Play after I published an alpha release on it due to "incompatibility with various wearable devices".

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.

In the Developer Console, the "Manage devices" button works only for the handheld one. All wearable devices have been marked as "unsupported".

dev console screenshot

How do you specify the supported device for Android Wear apps?

Update (Manifest)

Phone:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="tsundere.frederick.myapp">

    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.BODY_SENSORS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.LOCATION_HARDWARE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

    <application
        android:name=".Application"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:launchMode="singleTop"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <service
            android:name=".listener.SensorListener"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.android.gms.wearable.DATA_CHANGED" />

                <data
                    android:host="*"
                    android:pathPrefix="/myapp_sensor"
                    android:scheme="wear" />
            </intent-filter>
        </service>
        <service
            android:name=".listener.OpenPhoneListener"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.android.gms.wearable.MESSAGE_RECEIVED" />

                <data
                    android:host="*"
                    android:pathPrefix="/myapp_open_phone"
                    android:scheme="wear" />
            </intent-filter>
        </service>

        <activity android:name=".LabelActivity" />
        <activity android:name=".SettingActivity" />
    </application>

</manifest>

Wear:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="tsundere.frederick.myapp">

    <uses-feature android:name="android.hardware.type.watch"/>

    <uses-permission android:name="android.permission.WAKE_LOCK"/>
    <uses-permission android:name="android.permission.BODY_SENSORS"/>

    <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">
        <uses-library
                android:name="com.google.android.wearable"
                android:required="false"/>

        <activity
                android:name=".MainActivity"
                android:label="@string/app_name"
                android:theme="@android:style/Theme.DeviceDefault.Light">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <service
                android:name=".service.MinimalSensorService"
                android:enabled="true"
                android:exported="false">
        </service>
    </application>

</manifest>
Frederick Zhang
  • 3,593
  • 4
  • 32
  • 54
  • Hello, you should post your manifest to let us have a clue about which filtering the playstore is taking into account. Play Store only use the manifest and min/max SDK to filter the compatibility – gbaccetta Apr 06 '17 at 10:34
  • @gbaccetta Updated. Currently I want it to work ONLY on Moto 360 Sport. – Frederick Zhang Apr 06 '17 at 10:41
  • According to this [Google community post](https://plus.google.com/107096860394212846662/posts/9tPW5zX7PyZ) "This usually means that it doesnt work on all the screen resolutions." or "double check things look right on both square and round devices." Check the proper way of doing screen resolutions in [Defining Layouts](https://developer.android.com/training/wearables/ui/layouts.html) and [Android Wear type detection](http://stackoverflow.com/questions/24907557/android-wear-type-detection-round-or-square). – ReyAnthonyRenacia Apr 07 '17 at 12:50

1 Answers1

0

It's not possible to limit by device for Android Wear 1.x. As soon as Wear 2.0 hits the Moto 260 Sport, you'll be able to upload a standalone APK for it, and then select specific devices for it on Google Play using "Manage Devices".

Sterling
  • 6,365
  • 2
  • 32
  • 40