Статьи

Руки с Android Wear Developer Preview, часть 2

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

Android Preview App

Чтобы повторить шаги из моей предыдущей статьи о том, как начать:

Войдите в Google Play Store из учетной записи разработчика Gmail и установите Android Wear Preview.

После успешной установки

После успешной установки

Зайдите в Мои приложения из той же учетной записи Gmail

Приложение Android Wear Preview отображается под недавно установленными приложениями

Откройте приложение

Как показано выше, открыв приложение Android Wear Preview, вы увидите следующее сообщение:

уведомление

Теперь нажмите на сообщение:

Проверьте флажок

Нажмите ОК

Успешное завершение

Используйте USB для подключения вашего устройства к машине разработки.

Примечание. Никакие другие устройства Android не должны быть подключены к машине.

Убедитесь, что эмулятор Android Wear работает. Эмулятор должен быть в том же состоянии, показывая время и отключенный значок, который указывает, что ни одно устройство не подключено.

Откройте терминал и выполните следующие действия:

Перейдите в каталог platform-tools /

Введите следующее и нажмите Enter

adb -d forward tcp: 5601 tcp: 5601

Объяснить:

adb : Android Debug Bridge , клиент-серверная программа, которая взаимодействует с экземпляром эмулятора или подключенным устройством Android.

-d : направляет команду adb на подключенное USB-устройство.

forward : переадресация портов, которая перенаправляет запросы от определенного хост-порта на другой порт.

Вы также можете попробовать эти команды:
adb devices : печатает список всех подключенных эмуляторов и устройств.

версия adb : печатает номер версии adb.

В эмуляторе Android Wear теперь отображается значок шара «g», указывающий, что он связан с вашим устройством Android.

Добавление библиотеки поддержки Android Wear Preview

Чтобы добавить библиотеку поддержки Android и несколько API-интерфейсов, которые она включает, вы должны зарегистрироваться в Preview для разработчиков.

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

Электронное письмо, отправленное Google после успешной регистрации, можно увидеть ниже:

Электронная почта со ссылкой для скачивания Android Wear

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

  • Создайте каталог libs / в корневом каталоге проекта приложения для Android.
  • Скопируйте JAR-файл библиотеки поддержки v4 из каталога Android SDK в каталог проекта libs / .
    Путь к каталогу SDK: /extras/android/support/v4/android-support-v4.jar
    Вот путь: adt-bundle-windows-x86–20140321 / sdk / extras / android / support / v4

добавлен jar-файл android-support-v4.jar

  • Скопируйте 30-килобайтный jar-файл wearable-preview-support.jar из каталога Android SDK в каталог проекта libs / .

Копирование второго файла jar из каталога Android SDK

  • Вставьте файл wearable-preview-support.jar в каталог libs / .

Оба jar-файла скопированы в каталог <strong> libs / </ strong>

  • Щелкните правой кнопкой мыши файл JAR и выберите « Путь сборки»> «Добавить в путь сборки» .

Путь сборки для android-support-v4.jar

Путь сборки для wearable-preview-support.jar

Давайте создавать уведомления

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

Фрагмент кода ниже должен быть добавлен в файл MainActivity.java Вы можете найти этот файл, развернув узел src / . Я предполагаю, что вы хорошо разбираетесь в структуре каталогов Android.

Примечание. Вы можете создать файл java в узле src / во время инициализации проекта вместо создания файла MainActivity.java по умолчанию.

Начнем с импорта необходимых классов:

Начните с импорта классов

Импорт классов

Создать уведомления

Для уведомлений мы используем следующие два API:

Мы будем использовать следующие классы и методы:

  • Намерение : класс, который дает абстрактное описание выполняемой операции.
  • PendingIntent : класс, который дает описание намерения и целевого действия, которое нужно выполнить.
  • putExtra () : метод, который добавляет расширенные данные в Intent.
  • getActivity () : метод, который извлекает PendingIntent
  • setSmallIcon () : метод, который устанавливает маленькую иконку.
  • setContentTitle () : метод, который устанавливает первую строку текста.
  • setContentText () : метод, который устанавливает вторую строку текста.
  • setContentIntent () : при нажатии на уведомление этот метод предоставляет PendingIntent
  • notify () : этот метод вызывает пробуждение потока (который ожидает).

Фрагмент кода для уведомления приведен ниже:

 // Unique ID for notification
int id = 1;

// Build intent for notification content
Intent intent = new Intent(this, ViewEventActivity.class);
intent.putExtra(EXTRA_EVENT_ID, eventId);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

// The Builder class for NotificationCompat objects. 
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.ic_event)
        .setContentTitle(eventTitle)
        .setContentText(eventLocation)
        .setContentIntent(pendingIntent);

// Get an instance of the NotificationManager service
NotificationManagerCompat notificationMgr = NotificationManagerCompat.from(this);

// Build the notification and issue it with the notification manager.
notificationMgr.notify(id, builder.build());

Следующий фрагмент кода добавляет экземпляр NotificationCompat.BigTextStyle

Вызовите setStyle()NotificationCompat.BuilderBigTextStyle InboxStyle

Здесь мы использовали следующие классы и методы:

BigTextStyle : класс перестройки, который генерирует уведомления большого формата.
addAction : метод, который добавляет действие к уведомлению.

 // Used for generating large-format notifications that include lengthy text
BigTextStyle bigStyle = new NotificationCompat.BigTextStyle();
bigStyle.bigText(eventDescription);

NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.ic_event)
        .setLargeIcon(BitmapFractory.decodeResource(getResources(), R.drawable.notif_background))
        .setContentTitle(eventTitle)
        .setContentText(eventLocation)
        .setContentIntent(viewPendingIntent)
        .addAction(R.drawable.ic_map, getString(R.string.map), mapPendingIntent)
        .setStyle(bigStyle);

Большие объемы содержимого можно увидеть, развернув уведомление на портативном устройстве, тогда как в Android Wear содержимое отображается по умолчанию.

Еще можно добавить к вашим уведомлениям, используя следующие методы:

  • setLargeIcon (Значок растрового изображения): установить большой значок.
  • setNumber (int number): Устанавливает большое число в правой части уведомления.
  • setVibrate (long [] pattern): устанавливает шаблон вибрации для.
  • setWhen (long when): установить время, когда произошло событие, уведомления на панели сортируются по этому времени.

Время добавить несколько страниц в уведомления

Обычно жизнь не ограничивается работой над одной вещью за раз. Многие другие отвлекающие факторы делают нас занятыми и не сфокусированными. Большое количество уведомлений может создать путаницу и перегружать пользователей.

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

Здесь мы будем использовать следующие методы:

  • addPage () : для добавления одной страницы
  • addPages () : для добавления нескольких страниц

Инициируйте процесс, создав основное уведомление, т.е. первую страницу уведомления. Это делается с помощью addPage() Не забывайте добавлять по одной странице за раз, для добавления нескольких страниц используйте CollectionaddPages()

Например, вот фрагмент кода для добавления второй страницы к уведомлению:

 // Builder for the main notification
NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.new_message)
        .setContentTitle(&quot;Page One&quot;)
        .setContentText(&quot;Club event at 8PM today&quot;)
        .setContentIntent(viewPendingIntent);

// Big text style for page two
BigTextStyle pageTwoStyle = new NotificationCompat.BigTextStyle();
secondPageStyle.setBigContentTitle(&quot;Page Two&quot;).bigText(&quot;Meet me at the restaurant within 1 hour for further discussions.&quot;);

// Create page two notification
Notification pageTwoNotification = new NotificationCompat.Builder(this).setStyle(pageTwoStyle).build();

// Create main notification and add the second page
Notification addNotification = new WearableNotifications.Builder(builder)
        .addPage(pageTwoNotification)
        .build();

Штабелирование уведомлений

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

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

Группировка

Для группировки уведомлений мы используем следующие методы:

  • setGroup (): чтобы создать стек, вызовите его для каждого уведомления в стеке и укажите ключ группы.
  • Notify (): вызовите этот метод, чтобы отправить каждое уведомление носимому.

Ниже мы создадим и выпустим три уведомления одно за другим. Начнем с первого уведомления:

 final static String GROUP_KEY_EMAILS = &quot;group_key_emails&quot;;

// Build first notification and pass this builder to WearableNotifications.Builder
NotificationCompat.Builder builder = new NotificationCompat.Builder(mContext)
         .setContentTitle(&quot;New message: &quot; + sender1)
         .setContentText(subject1)
         .setSmallIcon(R.drawable.new_mail);

// Use the group GROUP_KEY_EMAILS
Notification notificationOne = new WearableNotifications.Builder(builder)
         .setGroup(GROUP_KEY_EMAILS)
         .build();

// Issuing the notification
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(notificationId1, notif);

Укажите тот же групповой ключ при создании второго уведомления. Когда вы вызываете notify()

 // Build second notification
builder = new NotificationCompat.Builder(mContext)
         .setContentTitle(&quot;New message: &quot; + sender2)
         .setContentText(subject2)
         .setSmallIcon(R.drawable.new_mail);

// Use the same group GROUP_KEY_EMAILS
Notification notificationTwo = new WearableNotifications.Builder(builder).setGroup(GROUP_KEY_EMAILS).build();  

// Second notification
notificationManager.notify(notificationId2, notif);

Теперь третье уведомление:

 // Build third notification
builder = new NotificationCompat.Builder(mContext)
         .setContentTitle(&quot;New message: &quot; + sender3)
         .setContentText(subject3)
         .setSmallIcon(R.drawable.new_mail);

// Use the same group GROUP_KEY_EMAILS
Notification notificationThree = new WearableNotifications.Builder(builder).setGroup(GROUP_KEY_EMAILS).build();

// Third notification
notificationManager.notify(notificationId3, notif);

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

Сводное уведомление

На портативных устройствах предоставление сводки уведомлений имеет решающее значение. Важно установить позицию заказа на GROUP_ORDER_SUMMARY

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

 // For large icon
Bitmap bmpLargeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_large_icon);

builder = new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.ic_small_icon)
        .setLargeIcon(bmpLargeIcon);

// Use the same group key GROUP_KEY_EMAILS
WearableNotifications.Builder wearableBuilder = new WearableNotifications
        .Builder(builder)
        .setGroup(GROUP_KEY_EMAILS,
                WearableNotifications.GROUP_ORDER_SUMMARY);

// Build the final notification by passing wearableBuilder to InboxStyle notification
Notification summary = new NotificationCompat.InboxStyle(
        wearableBuilder.getCompatBuilder())
        .addLine(&quot;Amit    Attend Sachin’s last Test Match.&quot;)
        .addLine(&quot;Ansh    Business meeting for e-learning project.&quot;)
        .addLine(&quot;CoMoDay    Event for technical writers.&quot;)
        .setBigContentTitle(&quot;3 new messages&quot;)
        .setSummaryText(&quot;Your Email-Id here&quot;)
        .build();

notificationManager.notify(notificationId4, summary);

Ссылка на ресурсы

Что мы узнали?

В этой статье мы познакомились с Android Wear:

  • Как установить приложение Android Wear Preview.
  • Добавление библиотеки поддержки в проект Android.
  • Как начать с кодирования в исходном файле проекта Android.
  • Создание и выдача уведомлений.
  • Добавление страниц в Уведомление.
  • Группировка и создание сводок для уведомлений.

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