Статьи

Создайте свое первое приложение Google Wear

Автор Майкл Крамп

С тех пор, как 18 марта 2014 года Google представила Google Wear в качестве предварительного просмотра для разработчиков, в магазине Google Play произошел взрыв приложений для износа. Все, от новых циферблатов, которые превращают ваши часы в Rolex за 10 тысяч долларов, до приложений, которые помогут вам поймать такси или поезд, не вытащив свой телефон. Даже крупные бренды, такие как Delta, ставят на часы свои посадочные талоны.

Со всеми новыми часовыми партнерами, такими как Samsung, LG и Motorola, у нас есть много устройств, и, что более важно, мы начинаем привлекать пользователей для разработки приложений. В этом руководстве мы рассмотрим создание нашего первого приложения Google Wear, чтобы помочь вам в этом.

Наше приложение Google Wear

Приложение, которое мы собираемся создать сегодня, представляет собой калькулятор чаевых с изюминкой. Вместо того, чтобы вручную вводить сумму счета на крошечном экране, мы будем использовать распознавание речи для ввода целого числа. Он умножит целое число на 15 процентов (стандартный совет) и отобразит общую сумму счета на ваших часах. Мы сможем сделать все это с помощью следующей команды: «ОК, Google Open Wearable Tip». После запуска приложения мы просто скажем целое число (например, 20).

Хватай биты

Чтобы следовать этому руководству, убедитесь, что вы используете последнюю стабильную версию  Android Studio . На момент написания статьи я использовал 1.1.0. Также убедитесь, что вы установили платформу Android 5.0.1 SDK и образ системы Android Wear (на случай, если у вас нет часов), как показано ниже:

sdkmanager

После того, как все установлено, вы готовы создать свое первое приложение для ношения!

Начиная

Мы начнем с того, что запустим новый проект и дадим ему имя, а затем выберем форм-факторы «Телефон и планшет» и «Износ», как показано ниже. Обратите внимание, что для приложения «Телефон и планшет» вы можете выбрать более низкий уровень API, например 9, в то время как в приложении «Износ» вы должны использовать API 20 (KitKat 4.4) и выше. У меня есть часы Moto 360 для тестирования, которые были обновлены до 5.0.1, поэтому в этом руководстве мы будем использовать API 21.

targetdevices

Прежде чем двигаться дальше, следует отметить, что вам не нужно создавать приложение для телефона и планшета для создания приложения Android Wear. Это не похоже на iOS, где для создания приложения Apple Watch необходимо приложение для телефона. Другими словами, приложение Android Wear будет упаковано в файл APK, который будет развернут на самих часах. Ниже приведен снимок экрана с моими часами Moto 360, на котором установлено приложение.

appscreenshot

Идите вперед, закончите шаблон и добавьте пустые действия, пока ваш проект не будет загружен. Вы заметите, что он разбивает проекты на две папки:

  1. mobile — наше приложение для телефона и планшета
  2. одежда — наше приложение для часов

В этом уроке мы сосредоточимся на приложении по износу, поэтому расширяйте папки до тех пор, пока они не будут выглядеть, как показано на рисунке ниже:

wearappstructure

Обратите особое внимание на следующие четыре файла:

  1. MainActivity.java — это код, который запускается при первой загрузке и где мы будем добавлять наш код.
  2. rect_activity_main.xml — это наш пользовательский интерфейс для часов, которые используют экран Rectangle (например, часы LG).
  3. round_activity_main.xml — это наш пользовательский интерфейс для часов, которые используют круглый экран. (как мото 360)
  4. strings.xml — где мы будем хранить наши строковые значения, чтобы упростить локализацию нашего приложения.

Создание нашего интерфейса

Давайте начнем с создания нашего пользовательского интерфейса для Round Watch, так как вскоре мы опробуем его на Moto 360. Нажмите на, round_activity_main.xml и вы заметите, что у него уже есть  TextView виджет, который отображает текст «Hello Round World».

Переключите предварительный просмотр устройства на «Wear Round», перетащите  Small Buttonвиджет и дайте ему текст «Another?». onClick Отцентрируйте его на экране и установите  имя метода (на панели свойств) в onClickMe. Теперь он должен выглядеть следующим образом:

roundwatchbutton

Сделайте то же самое для rect_activity_main.xml и просмотрите его на устройстве «Wear Square».

Для простоты приложения мы будем повторно использовать виджет TextView для отображения общей суммы счета. Кнопка с надписью «Другой?» позволит конечному пользователю рассчитать еще один совет, используя распознавание речи.

Написание логики

Перейдите к  MainActivity.java файлу и добавьте следующие операторы импорта, которые мы скоро будем использовать.

import android.content.Intent;
import android.speech.RecognizerIntent;
import java.util.List;
import java.text.NumberFormat;

Мы объявим две переменные внутри  MainActivity класса. Это будет для   класса Speech Recognizer, предоставляемого Google, и суммы чаевых в процентах.

private static final int SPEECH_RECOGNIZER_REQUEST_CODE = 0;
private float tipPercent = .15f;

Добавьте следующий метод, который создает функцию,  Intent которая запускает распознаватель речи.

private void startSpeechRecognition() {
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,      RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
    startActivityForResult(intent, SPEECH_RECOGNIZER_REQUEST_CODE);
}

Теперь добавьте следующий метод, который вызывается с  Activity результатом. Если он определяет, что он успешно перехватил ваш голосовой ввод, он пытается преобразовать его в число с плавающей точкой. Если он успешен, он рассчитывает общую сумму и отображает ее в метке, или же обновляет метку фразой «Введите целое число».

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == SPEECH_RECOGNIZER_REQUEST_CODE) {
        if (resultCode == RESULT_OK) {
            List<String> results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS);

            String recognizedText = results.get(0);
            //Try to extract the total bill amount in a whole number

            try {
                float billAmount = Float.parseFloat(recognizedText);
                // calculate tip and total
                float tipAmount = billAmount * tipPercent;
                float totalAmount = billAmount + tipAmount;

                // Display the tip on the watch
                NumberFormat currency = NumberFormat.getCurrencyInstance();
                mTextView.setText(currency.format(totalAmount));
            }
            catch(NumberFormatException ex) {
                mTextView.setText("Enter a whole number!");
            }
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}

Самое последнее, что нужно сделать, — это вызвать  startSpeechRecognitionметод в последней строке нашего  OnCreate метода и подключить его к кнопке, которую мы создали ранее.

public void onClickMe(View view){
    startSpeechRecognition();
}

Тестирование нашего приложения

С UI и кодом на месте, вы, вероятно, хотите запустить приложение. У вас есть несколько вариантов. Вы можете создать AVD (Android Virtual Device) для Android Wear, как показано ниже, но он не уловит ваш голос через микрофон компьютера.

avdwear

Он автоматически добавит поддержку вашей клавиатуры при создании AVD. Это позволит вам набрать номер, как показано ниже.

demoavd1

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

Развертывание на нашем устройстве

В зависимости от того, какие у вас часы, вы можете иметь или не иметь USB-соединение. В моем случае я тестирую на Moto 360, который позволяет только отладку по Bluetooth. К счастью, это легко установить с помощью документации  , предоставляемой Google.

Я бы сказал, что единственный сложный шаг — найти, где находится Android Debug Bridge на Mac, и добавить его к себе  .bash_profile для дальнейшего использования. На коробке с Windows это, похоже, не проблема.

Вот простой способ исправить это на Mac:

  1. Открыть терминал на Mac
  2. cd ~$ (чтобы попасть в мой домашний каталог)
  3. open -e .bash_profile (добавить путь к adb)
  4. Добавить:
  5. export PATH=$PATH:/Users/crump/Library/Android/sdk/platform-tools/

    Обязательно измените имя пользователя (например, «crump» в моем случае) на свое. Сохраните файл.

  6. echo $PATH
    должен вернуть:
  7. /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/crump/Library/Android/sdk/platform-tools/
  8. adb version должен вернуть что-то вроде следующего: «Android Debug Bridge версия 1.0.32»

Как только это произойдет, и, если вы выполнили действия, описанные в документации, при нажатии кнопки запуска вы должны подключить следующее устройство:

runningdevice

Выберите часы и убедитесь, что в совместимом поле указано «Да». Дайте несколько минут, чтобы скомпилировать и загрузить APK на ваши часы. Вы должны увидеть экран «Говорите сейчас» и сможете указать целое число.

Вот короткое видео, которое я сделал, показывая его в действии:

Исходный код этого приложения можно найти  здесь . Идите вперед и раскройте репо и попробуйте добавить дополнительные функции. У меня есть несколько идей:

  • Возможность выбора двух входных параметров, таких как сумма чаевых и процент чаевых;
  • Вместо текста «Говорите сейчас» при запуске приложения укажите «Введите сумму чаевых»;
  • Сделайте так, чтобы сумма чаевых отображалась на телефоне, а также на часах после того, как он вычислит общую сумму.

Заворачивать

Сегодня мы узнали, как написать приложение, которое работает на вашем запястье. Благодаря недавним улучшениям в Google Wear с Lollipop это поможет вам в создании более носимых приложений.

Если вы хотите пойти дальше, ознакомьтесь с дополнительными ресурсами ниже:

  • Блог разработчика Google  — блог от Google, который охватывает все их технологии, включая носимые.

  • Google Wear Site  — это целевая страница для носимых устройств Android. Это должно стать отправной точкой для разработки приложения Android Wear.

  • Носимый блог Android Central  — сторонний блог, в котором содержатся советы и рекомендации, позволяющие максимально эффективно использовать устройство Android Wear.

  • Telerik UI для Android  — Родные элементы управления для Android, которые включают в себя различные графики, календарь, ListView и многое другое.