2015-12-01 4 views
1

У меня возникли проблемы, чтобы получить пример приложений для Google Fit, предоставляемых Google.Приложение Google Google Fit не работает

я понял до сих пор, что resultCode я получаю в onActivityResult является 0 после того как я выбрал Account.

Пример приложения, который я использую на данный момент, - BasicRecordingApi, который находится здесь here. Но я тоже пробовал другие.

Я создал ключ API для приложения, и я уже включил API Google Fit.

Ничего не помогает.

Любые идеи?

ответ

7

Начало работы на Android

Это объясняет, как начать разработку с Google Fit на Android. Google Fit является частью сервисов Google Play.

Шаг 1: Получить Google Play услуги

Google Fit доступен на Android устройствах с Google Play Services 7.0 или выше. Устройства под управлением Android 2.3 или более поздней версии, которые имеют приложение Google Play Store, автоматически получают обновления в сервисах Google Play.

Чтобы проверить, какая версия сервисов Google Play установлена ​​на вашем устройстве, выберите «Настройки»> «Службы»> «Службы Google Play».

Убедитесь, что у вас есть последняя клиентская библиотека для Google Play услуг на хосте развития:

1.open Менеджер Android SDK. 2. Дополнительно, найдите сервисы Google Play и Google Repository. 3.Если статус для этих пакетов отличается от установленного, выберите их оба и нажмите «Установить пакеты».

Шаг 2: Получить учетную запись Google Для использования API-интерфейсов Google Fit вам необходим аккаунт Google.

Шаг 3: Включение пригодности API создать проект на Google консоли

1.Go в Google Developers Console. 2.Нажмите «Создать проект». 3. В поле «Имя проекта» введите имя для своего проекта и нажмите «Создать».

Активировать фитнес-интерфейс 1. Перейти к Google Developers Console. 2.В левой боковой панели щелкните API и Auth. 3.Найдите API пригодности и установите его статус в положение ВКЛ.

Создать новый идентификатор клиента

1.Go в Google Developers Console. 2.В левой боковой панели нажмите «Учетные данные». 3.Нажмите Создать новый идентификатор клиента. Откроется диалоговое окно «Создать идентификатор клиента». 4. Выберите тип приложения, выберите Установленное приложение. 5.Настроенный тип приложения, выберите Android. 6. В поле «Имя пакета» введите имя пакета вашего приложения для Android. 7. В поле Отпечаток сертификата подписи (SHA1) введите отпечаток SHA1 вашего сертификата. 8.Нажмите Создать идентификатор клиента.

Шаг 4: Настройка вашего проекта

В среде IDE откройте файл build.gradle для модуля и добавить сервисы Google Play клиентскую библиотеку как зависимость:

apply plugin: 'com.android.application' 
    ... 

    dependencies { 
     compile 'com.google.android.gms:play-services-fitness:8.3.0' 
    } 

Step 5: Подключение к фитнес-обслуживанию

Начало работы на Android

В этом документе объясняется, как начать разработку с Google Fit на Android. Google Fit является частью сервисов Google Play.

Шаг 1: Получить Google Play услуги

Google Fit доступен на Android устройствах с Google Play Services 7.0 или выше. Устройства под управлением Android 2.3 или более поздней версии, которые имеют приложение Google Play Store, автоматически получают обновления в сервисах Google Play.

Чтобы проверить, какая версия услуг Google Play установлена ​​на вашем устройстве, откройте «Настройки»> «Службы»> «Службы Google Play».

Убедитесь, что у вас есть последняя клиентская библиотека для Google Play услуг на хосте развития:

Открыть диспетчер Android SDK. В разделе «Дополнительно» найдите службы Google Play и репозиторий Google. Если статус для этих пакетов отличается от установленного, выберите их оба и нажмите «Установить пакеты». Шаг 2: Получить учетную запись Google

Для использования API-интерфейсов Google Fit вам необходим аккаунт Google. Если у вас уже есть учетная запись, вы все настроены. Вы также можете захотеть отдельную учетную запись Google для целей тестирования.

Шаг 3: Включите Фитнес API

Для аутентификации и общаться с помощью Google Fit, вы должны создать проект в Google Developers Console, включите Фитнес API, создать OAuth 2.0 идентификатор клиента, и зарегистрировать общественности сертификат из подписанного APK приложения.

создать проект

Примечание: Используйте один и тот же проект для Android и ОТДОХНУТЬ версии вашего приложения. Перейдите в Google Developers Console. Нажмите «Создать проект». В поле «Имя проекта» введите имя для своего проекта и нажмите «Создать». Активировать фитнес-API

Перейти к Консоли разработчиков Google. В левой боковой панели щелкните API и Auth. Найдите API-интерфейс Fitness и установите его статус в положение ON. API-интерфейс Fitness теперь отображается в верхней части списка API.

Получит SHA1 отпечаток вашего сертификата

Чтобы создать новый идентификатор клиента для Android приложения, вам нужно SHA1 отпечаток сертификата вы используете для подписи APK. Чтобы получить этот отпечаток:

Найдите местоположение своего хранилища ключей. В терминале запустите утилиту keytool из JDK. Например, если вы используете debug хранилище ключей: $ Keytool -exportcert -alias \ androiddebugkey -keystore \ ~/.android/debug.keystore -list -v Примечание: В Mac OS и Linux, отладки Хранилище ключей обычно находится в ~/.android/debug.keystore. В Windows он обычно находится в папке% USERPROFILE% .android \ debug.keystore.

Выход команды keytool содержит отпечаток SHA1 для сертификата.

Рисунок 1: Диалоговое окно «Создать идентификатор клиента». Создать новый идентификатор клиента

Перейдите в Google Developers Console. В левой боковой панели нажмите «Учетные данные». Нажмите «Создать новый идентификатор клиента». Откроется диалоговое окно «Создать идентификатор клиента». В разделе «Тип приложения» выберите «Установленное приложение». В разделе «Установленный тип приложения» выберите «Android». В поле «Имя пакета» введите имя пакета вашего приложения Android. В поле Отпечаток сертификата подписи (SHA1) введите отпечаток SHA1 вашего сертификата. Нажмите «Создать идентификатор клиента». Шаг 4: Настройте свой проект

Android Studio упрощает создание проекта для Google Fit. Выполните шаги, описанные в разделе «Создание проекта».

В среде IDE откройте файл build.gradle для модуля и добавить сервисы Google Play клиентскую библиотеку как зависимость:

apply plugin: 'com.android.application' 
... 

dependencies { 
    compile 'com.google.android.gms:play-services-fitness:8.3.0' 
} 

Шаг 5: Подключение к фитнес-службе

Перед вами могут вызывать методы из API Google Fit API, вам необходимо подключиться к соответствующему фитнес-сервису или сервисам, которые входят в сервисы Google Play. Следующие интерфейсы доступны:

1.Fitness.SENSORS_API 
2.Fitness.RECORDING_API 
3.Fitness.HISTORY_API 
4.Fitness.SESSIONS_API 
5.Fitness.BLE_API 
6.Fitness.CONFIG_API 

Создание клиента API следующим образом:

1.Define переменные в вашей деятельности, чтобы помочь вам отслеживать состояние соединения:

private static final int REQUEST_OAUTH = 1; 

/** 
* Track whether an authorization activity is stacking over the current activity, i.e. when 
* a known auth error is being resolved, such as showing the account chooser or presenting a 
* consent dialog. This avoids common duplications as might happen on screen rotations, etc. 
*/ 
private static final String AUTH_PENDING = "auth_state_pending"; 
private boolean authInProgress = false; 

private GoogleApiClient mClient = null; 

2. Определите, выполняется ли аутентификация в методе onCreate:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    // Put application specific code here. 

    if (savedInstanceState != null) { 
     authInProgress = savedInstanceState.getBoolean(AUTH_PENDING); 
    } 

    buildFitnessClient(); 
} 

** 3.Create клиент Google API и предоставить необходимые методы обратного вызова: *

/** 
* Build a {@link GoogleApiClient} that will authenticate the user and allow the application 
* to connect to Fitness APIs. The scopes included should match the scopes your app needs 
* (see documentation for details). Authentication will occasionally fail intentionally, 
* and in those cases, there will be a known resolution, which the OnConnectionFailedListener() 
* can address. Examples of this include the user never having signed in before, or having 
* multiple accounts on the device and needing to specify which account to use, etc. 
*/ 
private void buildFitnessClient() { 
    // Create the Google API Client 
    mClient = new GoogleApiClient.Builder(this) 
      .addApi(Fitness.SENSORS_API) 
      .addScope(new Scope(Scopes.FITNESS_LOCATION_READ)) 
      .addConnectionCallbacks(
        new GoogleApiClient.ConnectionCallbacks() { 

         @Override 
         public void onConnected(Bundle bundle) { 
          Log.i(TAG, "Connected!!!"); 
          // Now you can make calls to the Fitness APIs. 
          // Put application specific code here. 
         } 

         @Override 
         public void onConnectionSuspended(int i) { 
          // If your connection to the sensor gets lost at some point, 
          // you'll be able to determine the reason and react to it here. 
          if (i == ConnectionCallbacks.CAUSE_NETWORK_LOST) { 
           Log.i(TAG, "Connection lost. Cause: Network Lost."); 
          } else if (i == ConnectionCallbacks.CAUSE_SERVICE_DISCONNECTED) { 
           Log.i(TAG, "Connection lost. Reason: Service Disconnected"); 
          } 
         } 
        } 
      ) 
      .addOnConnectionFailedListener(
        new GoogleApiClient.OnConnectionFailedListener() { 
         // Called whenever the API client fails to connect. 
         @Override 
         public void onConnectionFailed(ConnectionResult result) { 
          Log.i(TAG, "Connection failed. Cause: " + result.toString()); 
          if (!result.hasResolution()) { 
           // Show the localized error dialog 
           GooglePlayServicesUtil.getErrorDialog(result.getErrorCode(), 
             MainActivity.this, 0).show(); 
           return; 
          } 
          // The failure has a resolution. Resolve it. 
          // Called typically when the app is not yet authorized, and an 
          // authorization dialog is displayed to the user. 
          if (!authInProgress) { 
           try { 
            Log.i(TAG, "Attempting to resolve failed connection"); 
            authInProgress = true; 
            result.startResolutionForResult(MainActivity.this, 
              REQUEST_OAUTH); 
           } catch (IntentSender.SendIntentException e) { 
            Log.e(TAG, 
              "Exception while starting resolution activity", e); 
           } 
          } 
         } 
        } 
      ) 
      .build(); 
} 

4.Управление жизненным циклом подключения вашего клиента в вашей деятельности:

@Override 
protected void onStart() { 
    super.onStart(); 
    // Connect to the Fitness API 
    Log.i(TAG, "Connecting..."); 
    mClient.connect(); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
    if (mClient.isConnected()) { 
     mClient.disconnect(); 
    } 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_OAUTH) { 
     authInProgress = false; 
     if (resultCode == RESULT_OK) { 
      // Make sure the app is not already connected or attempting to connect 
      if (!mClient.isConnecting() && !mClient.isConnected()) { 
       mClient.connect(); 
      } 
     } 
    } 
} 

@Override 
    protected void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 
    } 
+0

Что я пропускал был частью с секцией OAuth '' 'Шаг 3: Включить Fitness API Для аутентификации и общаться с помощью Google Fit вы должны создать проект в Google Developers Console, активировать API-интерфейс Fitness, создать идентификатор клиента OAuth 2.0 и зарегистрировать публичный сертификат из подписанного APK приложения. '' ' Это помогло мне наконец. – Moritz

+0

Теперь ваша проблема решена? –

+1

С созданием OAuth-2.0-Client-ID для приложения он работает сейчас. – Moritz