Создайте свое первое носимое Android-приложение

В этом цифровом мире носимые устройства набирают все большую популярность после того, как Google выпустила свою платформу Android Wear для разработчиков. На этой платформе работают самые доступные умные часы, и мы видим новые модели на рынке, чем когда-либо. Умные носимые устройства представляют собой недорогие датчики с универсальными возможностями подключения, а модный дизайн стал более привлекательным и доступным. На данный момент у Apple есть свои умные часы, Google выходит на новый уровень в этом соревновании носимых устройств, предлагая привлекательные функции подключения к Wi-Fi, удобную навигацию с помощью жестов запястья и так далее. Платформа Android Wear доступна для собственной IDE в Android Studio.

Наше приложение будет простым приложением для Android, которое отправляет уведомления с телефона на сопряженное носимое устройство с помощью соответствующего носимого приложения одним нажатием кнопки. Android Studio — это основной стандарт для разработки приложений для Android. Для разработки приложений для носимых устройств вам необходимо обновить инструменты SDK до более поздней версии. Затем вы можете настроить либо устройство Android Wear, либо эмулятор Android Wear.

Для эмулятора

1. Using AVD Manager create an Android Wear square or round device
2. Start the emulator device
3. Install the Android Wear app from Google Play
4. Connect your handheld to your development machine through USB
5. Forward the AVD communication port to the handheld device with the command
CSS
adb -d forward tcp:5601 tcp:5601

(это необходимо делать каждый раз при подключении/повторном подключении телефона)
6. Запустите приложение Android Wear на своем телефоне и подключитесь к эмулятору через настройки приложения.

Для устройства Android Wear

1. Install the Android Wear app on your smartphone via the Google Play Store
2. Pair your handset and wearable using the instructions in the app
3. Enable developer options on your wear device (tap build number seven times in Settings > About)
4. Enable ADB debugging
5. Connect your wearable to your development machine, and you should be able to install and debug apps directly to your wearable.

Создайте свой проект

Возможно, вы захотите создать свой собственный проект в Android Studio, так как это поможет наилучшим образом настроить проект носимых устройств Android. Все, что вам нужно сделать, это нажать «Файл»> «Новый проект» и следовать приведенным инструкциям. Процесс очень похож на создание проекта телефона или планшета, но убедитесь, что вы выбрали «Телефон и планшет» и «Износ» в окне «Форм-факторы».

img1.jpg

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

Мобильный модуль

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

Макет приложения очень прост.

XML
<LinearLayout xmlns:android="
    xmlns:tools="
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:orientation="vertical">
    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"/>
    <Button
        android:id="@+id/actionButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        style="@style/Base.Widget.AppCompat.Button.Borderless"
        android:text="@string/show_notification"
        android:onClick="sendNotification" />
</LinearLayout>

MainActivity довольно проста.

JAVA
public class MainActivity extends AppCompatActivity {
    EditText editText;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText = (EditText) findViewById(R.id.editText);
    }
    public void sendNotification(View view) {
        String toSend = editText.getText().toString();
        if(toSend.isEmpty())
            toSend = "You sent an empty notification";
        Notification notification = new NotificationCompat.Builder(getApplication())
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle("AndroidAuthority")
                .setContentText(toSend)
                .extend(new NotificationCompat.WearableExtender().setHintShowBackgroundOnly(true))
                .build();
        NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getApplication());
        int notificationId = 1;
        notificationManager.notify(notificationId, notification);
    }
}

Обратите внимание, что при создании нашего уведомления мы вызвали метод extend(), предоставив объект NotificationCompat.WearableExtender().

Запустите мобильный модуль

Вы хотите запустить мобильный модуль так же, как и любое другое приложение для Android. Поскольку вы связали его с устройством Wear, запущенным проектом на вашем устройстве, будут отображаться уведомления на вашем носимом устройстве.
img2.png

Модуль износа

На этом этапе вы должны иметь возможность просматривать уведомления с мобильного устройства на носимом устройстве. Однако мы не довольствуемся этим и собираемся создать и запустить настоящее приложение для носимых устройств. Носимые устройства имеют меньший экран, чем портативные устройства, обычно круглый или прямоугольный, что создает свой собственный набор проблем с компоновкой. Google сохранил несколько отличных дизайнов для разработчиков Android Wear и включил в ваш проект библиотеку Wearable UI, которая автоматически использует мастер проектов Android Studio для создания вашего носимого приложения. Вам нужно добавить свой файл сборки build.gradle:

JAVA
dependencies {
  compile 'com.google.android.support:wearable:+'
}

Когда вы создаете свой проект с помощью мастера проектов Android Studio, у вас автоматически настраивается действие для круглых и прямоугольных устройств износа. Файл activity_wear.xml выглядит следующим образом:

XML
<?xml version="1.0" encoding="utf-8"?>
<android.support.wearable.view.WatchViewStub
    xmlns:android="
    xmlns:app="
    xmlns:tools="
    android:id="@+id/watch_view_stub"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:roundLayout="@layout/round_activity_wear"
    app:rectLayout="@layout/rect_activity_wear"
    tools:context=".WearActivity"
    tools:deviceIds="wear">
</android.support.wearable.view.WatchViewStub>

Есть некоторые изменения виджета в круглой и прямоугольной одежде. Это всего лишь несколько предостережений, и у вас есть свобода создавать совершенно разные макеты для круглых и прямоугольных экранов.
1. Round_activity_wear.xml

XML
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="
    xmlns:app="
    xmlns:tools="
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_box="all"
    tools:context=".WearActivity"
    tools:deviceIds="wear_round">
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/hello_round"
        android:onClick="beginCountdown" />
    <android.support.wearable.view.DelayedConfirmationView
        android:id="@+id/delayedView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        app:circle_border_color="@color/green"
        app:circle_border_width="20dp"
        app:circle_color="@color/white"
        app:circle_radius="60dp"
        app:circle_radius_pressed="60dp"
        app:circle_padding="16dp"
        app:update_interval="100"/>
</FrameLayout>

Он отображает следующий вывод.
img3.png

2. Rect_activity_wear.xml

XML
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="
    xmlns:app="
    xmlns:tools="
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_box="all"
    tools:context=".WearActivity"
    tools:deviceIds="wear_round">
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/hello_round"
        android:onClick="beginCountdown" />
    <android.support.wearable.view.DelayedConfirmationView
        android:id="@+id/delayedView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        app:circle_border_color="@color/green"
        app:circle_border_width="20dp"
        app:circle_color="@color/white"
        app:circle_radius="60dp"
        app:circle_radius_pressed="60dp"
        app:circle_padding="16dp"
        app:update_interval="100"/>
</FrameLayout>

Приведенный выше код отобразит следующий вывод.
img4.png
Как и любой другой Android-смартфон или планшет, WearActivity расширяет android.app.Activity, мы устанавливаем OnLayoutInflatedListener.object на наш WatchViewStub, который вызывается после того, как WatchViewStub распознал, является ли носимое устройство круглым или прямоугольным. В нашем приложении мы хотим, чтобы Button и DelayedConfirmationView затем вызывали showOnlyButton(), чтобы скрыть DelayedConfirmationView и показать только кнопку.

public class WearActivity extends Activity {
    private Button button;
    private DelayedConfirmationView delayedView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wear);
        final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub);
        stub.setOnLayoutInflatedListener(new WatchViewStub.OnLayoutInflatedListener() {
            @Override
            public void onLayoutInflated(WatchViewStub stub) {
                button = (Button) stub.findViewById(R.id.button);
                delayedView = (DelayedConfirmationView) stub.findViewById(R.id.delayedView);
                delayedView.setTotalTimeMs(3000);
                showOnlyButton();
            }
        });
    }

    public void beginCountdown(View view) {
        button.setVisibility(View.GONE);
        delayedView.setVisibility(View.VISIBLE);
        delayedView.setListener(new DelayedConfirmationView.DelayedConfirmationListener() {
            @Override
            public void onTimerFinished(View view) {
                showOnlyButton();
            }
            @Override
            public void onTimerSelected(View view) {
            }
        });
        delayedView.start();
    }

    public void showOnlyButton() {
        button.setVisibility(View.VISIBLE);
        delayedView.setVisibility(View.GONE);
    }
}

Запустите модуль износа

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

img5.gif

Захватывающие времена впереди

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *