2015-03-21 3 views
1

Я пытаюсь создать базовое ношение приложения, которое принимает новые растровые изображения из основного приложения для Android. К сожалению, когда я пытаюсь .build() в GoogleApiClient I соединение не удалось слушатель вызываются с кодом ошибки 16.Код состояния 16 при создании нового GoogleApiClient

Это получено точная ошибка от ConnectionFailedListener

03-21 13:36 : 35,903 3089-3089/com.example.android.wearable.watchface D/Watch Face Config: onConnectionFailed: ConnectionResult {StatusCode = неизвестный код состояния 16, разрешение = нуль}


App Код:

 // create the api client to allow sending information to the wearable 
    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(new GoogleApiClient.ConnectionCallbacks() { 
       @Override 
       public void onConnected(Bundle connectionHint) { 
        Log.d(TAG, "onConnected: " + connectionHint); 
        // Now you can use the Data Layer API 
       } 
       @Override 
       public void onConnectionSuspended(int cause) { 
        Log.d(TAG, "onConnectionSuspended: " + cause); 
       } 
      }) 
      .addOnConnectionFailedListener(new GoogleApiClient.OnConnectionFailedListener() { 
       @Override 
       public void onConnectionFailed(ConnectionResult result) { 
        Log.d(TAG, "onConnectionFailed: " + result); 
       } 
      }) 
        // Request access only to the Wearable API 
      .addApi(Wearable.API) 
      .build(); 

В носимом приложении у меня есть DataListenerService создал, но это не имеет значения, на данный момент, потому что API не строить правильно.

Спасибо за любую помощь или комментарии!

UPDATE - я изменил цель эмулятор устройства из API, Google для Android 5.0.1 и ошибка изменен:

03-21 14: 18: 24.620 3025-3025/ком. example.android.wearable.watchface D/Watch Face Config: onConnectionFailed: ConnectionResult {StatusCode = SERVICE_MISSING, разрешение = нуль}

UPDATE 2 - Найдено this Арктику и следовать инструкциям. Тогда мое приложение не удалось скомпилировать. После этого я пошел в менеджер SDK на основе отмеченных ответов и проверил Google Play Services (они не были установлены). Теперь приложение строит, но все еще дает ошибку SERVICE_MISSING выше.

+0

ли вы установили Android Wear на телефоне? – EyesClear

+0

Я использую эмулятор –

ответ

1

Чтобы использовать Wearable API, на вашем устройстве должны быть установлены сервисы Google Play и Android Wear app. По умолчанию у эмуляторов нет его, поэтому либо установите его вручную, либо используйте уже имеющееся на нем устройство.

Если вы используете Genymotion, просто download Google Play Services и перетащите & на эмулятор. Затем войдите в свою учетную запись Google и используйте Play Store для загрузки приложения Android Wear.

Дополнительная информация here и here.

Если вы используете без использования, используя Genymotion, вы должны начать делать это сейчас, поскольку это намного быстрее, чем стандартные AVD.

Просто помните, что это позволит вашему GoogleApiClient подключиться успешно, вам все равно придется установить соединение между эмулятором и вашим носимым устройством (или носимым эмулятором), если вы хотите реально использовать Wearable API , Поэтому, пожалуйста, обратитесь к другим вопросам о том, как создавать или моделировать соединение Bluetooth, for example this one.

Редактировать: официальные эмуляторы для Android в настоящее время намного быстрее & имеют установленные в Google Play сервисы.

+0

у вас есть какие-либо указания относительно того, как установить приложение Wear в эмулятор? –

+0

Конечно, обновил мой ответ. – EyesClear

+0

спасибо за все подробности. –

1

Проверьте этот SO вопрос:

Android Wear - Unexpected error code 16

У меня была аналогичная проблема. Код ошибки сообщает вам, что приложение для ношения Android не установлено. В ваших onConnectionFailedListener вам нужно добавить что-то вроде:

// Connection failed listener method for a client that only 
// requests access to the Wearable API 
@Override 
public void onConnectionFailed(ConnectionResult result) { 
    if (result.getErrorCode() == ConnectionResult.API_UNAVAILABLE) { 
    // The Android Wear app is not installed 
    } 
    ... 
} 

Отсюда:

https://developer.android.com/google/auth/api-client.html#Starting

"Доступ носимого API"

Смежные вопросы