HUAWEI объявила о запуске HMS Core 4.0 по всему миру

HUAWEI объявила о запуске HMS Core 4.0 по всему миру Новости

Hms core huawei — что это такое?

Альтернатива инструментов Google для разработки приложений. Содержит полный набор открытых программ Huawei Mobile Services (HMS).

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

Использование функций HMS Core позволяет увеличить производительность приложений при меньшем расходе батареи.

Также в HMS Core доступны такие инструменты как систему оплат Wallet Kit, центр игр Game Service, систему уведомлений Push Kit, монетизацию Ads Kit, инструменты аналитики.

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

Вот что удалось выяснить на этапе первоначальной проработки

Мы решили делать одну общую версию приложения для всех площадок распространения.

Она должна уметь определять и использовать подходящий тип мобильных сервисов в рантайме. Этот вариант казался медленнее в реализации, чем отдельная версия под каждый тип сервисов, но мы рассчитывали выиграть в другом:

Для работы с разными реализациями мобильных сервисов в одной версии приложения необходимо:

  1. Спрятать все обращения за абстракцию, сохранив работу с GMS;
  2. Добавить реализацию для HMS;
  3. Разработать механизм выбора реализации сервисов в рантайме.

Методика внедрения поддержки Push Kit и Safety Detect значительно отличается от Map Kit, поэтому рассмотрим их отдельно.

Что из этого вышло

В первые дни после релиза обновленной версии приложения число установок достигло 1 млн. Мы связываем это отчасти с фичерингом со стороны AppGallery, а отчасти с тем, что наш релиз подсветило несколько СМИ и блогеров. А ещё со скоростью обновления приложений — ведь в AppGallery на протяжении двух недель лежала версия с самым высоким versionCode.

Мы получаем полезные отзывы о работе приложения в общем и о токенизации банковских карт в частности от пользователей в нашей ветке на 4pda. После релиза Pay-функциональности для Huawei посетителей на форуме прибавилось, и проблем, с которыми они сталкиваются, — тоже. Мы продолжаем работать над всеми обращениями, но массовых проблем при этом не наблюдаем.

В целом, релиз приложения в AppGallery прошёл успешно и можно сделать вывод, что наш подход к решению задачи оказался рабочим. Благодаря выбранному методу реализации у нас сохранилась возможность выкладывать все релизы приложения как в Google Play, так и в AppGallery.

Пользуясь этим методом, мы уже добавили в приложение Analytics Kit, APM, работаем над поддержкой Account Kit и не планируем на этом останавливаться, тем более, что с каждой новой версией HMS становится доступно всё больше возможностей.

Научите смартфон чувствовать, что вы рядом

Разблокировка по отпечатку пальца или лицу работает сейчас очень быстро, но можно обойтись и вовсе без этого. В EMUI есть функция разблокировки по Bluetooth-устройству — например, по браслету. Если он находится рядом и подключен, смартфон будет считать, что находится в ваших руках, и для разблокировки будет достаточно провести пальцем по экрану.

Huawei объявила о запуске hms core 4.0 по всему миру

Компания HUAWEI запускает набор сервисов HMS Core 4.0, которая позволит разработчикам приложений повысить эффективность и скорость разработки приложений, а также улучшить их монетизацию.

HUAWEI объявила о запуске HMS Core 4.0 по всему миру

HMS Core — это платформа, которая обеспечивает широкую базу открытых API экосистемы HUAWEI и способствует лучшей организации бизнес-процессов при создании приложений благодаря инструментам для их разработки и тестирования. Существующие сервисы Account Kit, Push Kit, Wallet Kit, Analytics Kit, Drive Kit и Game Service уже доказали свою стабильность.

Обновленная версия HMS Core 4.0 представляет расширенный набор сервисов. Представленные сервисы ML (Machine Learning) Kit, Awareness Kit, Scan Kit, Nearby Service, Panorama Kit, Safety Detect, Dynamic Tag Manager, Fast Identity Online, Site Kit, Quick App, WisePlay, Health Kit и Identity Kit являются новейшими разработками, в которых использованы элементы Chipset-Device-Cloud, и дополняют многофункциональный инструментарий разработчиков. HMS создает синергию между возможностями Chipset-Device-Cloud, что повышает производительность устройства до максимального уровня и оптимизирует энергопотребление. Это достигается с помощью полного набора открытых API-интерфейсов HMS Core, инструментов интегрированной среды разработки и полностью функциональной платформы для разработки и тестирования приложений.

Благодаря универсальной операционной поддержке, HMS Core позволяет ускорить разработку качественных приложений с широким набором базовых сервисов. Это устраняет сложности в разработке, благодаря чему разработчики могут сократить расходы и сосредоточиться на инновациях.

В настоящее время в HUAWEI зарегистрировано более 1,3 млн разработчиков, а к HMS Core подключено более 55 тыс. приложений. Открытость и расширенные инновационные возможности платформы HMS Core способствуют дальнейшему росту этих показателей.

Более подробная информация представлена на сайте: https://developer.huawei.com/consumer/ru/hms

§

§

§

Компания HUAWEI объявляет о первых результатах продаж беспроводных наушников HUAWEI FreeBuds 3, которые стартовали в России на прошедших выходных. Мероприятие, посвящённое этому событию, прошло в ТЦ «Авиапарк» в Москве. На церемонии открытия выступили президент HUAWEI Consumer Business Group (CBG) в России и регионе Лео Ли и специальный гость, актриса театра и кино Равшана Куркова.

В день старта продаж, приобретая одну пару наушников HUAWEI FreeBuds 3, первые 200 покупателей получали вторую пару в подарок. За первые три часа было распродано более 450 пар наушников.

Спрос на новое устройство в России побил рекорды продаж по сравнению с предыдущим поколением наушников открытого типа HUAWEI. За два дня общие продажи HUAWEI FreeBuds 3 во всех розничных магазинах HUAWEI, в магазинах-партнерах и официальном интернет-магазине компании превысили в 10 раз спрос на HUAWEI FreeBuds Lite.

HUAWEI FreeBuds 3 пользуются высоким спросом в России

Основными преимуществами новых наушников являются эффективное шумоподавление, быстрое и стабильное подключение и высокое качество звука. Футляр для наушников HUAWEI FreeBuds 3 также поддерживает технологию беспроводной зарядки и может заряжаться как от беспроводных зарядок, так и от смартфонов, оснащённых технологией реверсивной беспроводной зарядки.

Новые беспроводные наушники HUAWEI FreeBuds 3 доступны в черном и белом цветах. Приобрести устройство можно в официальном интернет-магазине, розничных магазинах HUAWEI и магазинах-партнерах компании по рекомендованной розничной цене 10 990 рублей.

§

Фирменные центры обслуживания HUAWEI объявляют о специальной акции «Сезон подарков от сервиса HUAWEI», которая продлится до 15 января 2020 года. В рамках предложения клиенты сервисных центров смогут произвести замену дисплея и батареи по специальной цене, получить в подарок защитную пленку при гарантийном ремонте, оформить бесплатно 90 дней дополнительного сервисного обслуживания, а также получить другие подарки от сервисного центра.

В акции участвуют смартфоны и планшеты, сертифицированные для продажи на территории РФ. Воспользоваться специальным предложением можно в сервисных центрах, перечень которых указан на сайте: https://huaweidevices.ru/ru/support/service-annual-giving-season/

Специальное предложение «90 дней сервисного обслуживания в подарок» действует только для устройств с неистекшим сроком гарантии от производителя. Для участия в акции необходимо в период действия гарантии сделать запрос на дополнительные 90 дней сервисного обслуживания через приложение HiCare.

В рамках акции «Замена дисплея и батареи по специальной цене» клиенты сервисного центра получат скидку до 20%, которая распространяется на запасные части смартфона —  батарею или дисплей, расходные материалы, а также работы по замене этих частей.

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

А с 20 декабря 2021 года по 15 января 2020 года владельцы смартфонов получат подарки при любом виде ремонта: наушники, зарядные устройства, кольца-держатели и т.д.

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

§

§

Используйте темы

В EMUI едва ли не с первых версий есть приложение (ищите его на рабочем столе, а не в настройках) «Темы». Это большой каталог тем оформления, которые включают в себя не только обои, но и цвета, шрифты и т. д. На отдельной вкладке — стили текста. Некоторые из них платные, но каталог бесплатных тем и стилей огромен.

Настройте размер текста и интерфейса

Этот маленький тюнинг может осчастливить глаза многих пользователей смартфонов. Если плохо видно — не нужно мучиться, просто сделайте покрупнее. На аппаратах Honor это делается в настройках экрана. Отдельно устанавливаются размеры текста и элементов интерфейса.

Не оставайтесь без заряда

В смартфонах Honor есть сразу два режима экономии энергии. Один — щадящий. В нём сильно ограничивается фоновая работа приложений, отключается автоматическая синхронизация почты, приглушаются звуки и упрощается анимация интерфейса. На самом деле, этот режим можно использовать для концентрации на работе, если нельзя включить «Не беспокоить».

Если батарейка близка к нулю, и вы понимаете, что до розетки еще далеко, значит, настало время режима «Ультра». Смартфон становится фактически просто телефоном: по нему можно звонить, с него можно отправлять SMS — и, в общем-то, всё. Зато в таком виде он протянет еще много часов.

Поддержка map kit

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

  1. Определить тип сервисов для отображения карт;
  2. Заинфлейтить соответствующий layout и работать с конкретной реализацией карт.

Поддержка push kit и safety detect


Как и положено в таких случаях, процесс интеграции начался с изучения

. В разделе предостережений обнаружились вот такие пункты:

Главное, что нужно вынести из этих предостережений

— существует разница в получении пуш-токена на разных версиях

. После вызова метода getToken(), реальный токен может быть возвращен через вызов метода onNewToken() сервиса. Наши испытания

на реальных устройствах

показали, что телефоны с EMUI < 10.0 на вызов метода getToken возвращают null или пустую строку, после чего происходит вызов метода onNewToken() сервиса. Телефоны с EMUI >= 10.0 всегда возвращали пуш-токен из метода getToken().

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

class HmsDataSource(
   private val hmsInstanceId: HmsInstanceId,
   private val agConnectServicesConfig: AGConnectServicesConfig
) {

   private val currentPushToken = BehaviorSubject.create<String>()

   fun getHmsPushToken(): Single<String> = Maybe
       .merge(
           getHmsPushTokenFromSingleton(),
           currentPushToken.firstElement()
       )
       .firstOrError()

   fun onPushTokenUpdated(token: String): Completable = Completable
       .fromCallable { currentPushToken.onNext(token) }

   private fun getHmsPushTokenFromSingleton(): Maybe<String> = Maybe
       .fromCallable<String> {
           val appId = agConnectServicesConfig.getString("client/app_id")
           hmsInstanceId.getToken(appId, "HCM").takeIf { it.isNotEmpty() }
       }
       .onErrorComplete()
}
class AppHmsMessagingService : HmsMessageService() {

   val onPushTokenUpdated: OnPushTokenUpdated = Di.onPushTokenUpdated

   override fun onMessageReceived(remoteMessage: RemoteMessage?) {
       super.onMessageReceived(remoteMessage)
       Log.d(LOG_TAG, "onMessageReceived remoteMessage=$remoteMessage")
   }

   override fun onNewToken(token: String?) {
       super.onNewToken(token)
       Log.d(LOG_TAG, "onNewToken: token=$token")
       if (token?.isNotEmpty() == true) {
           onPushTokenUpdated(token, MobileServiceType.Huawei)
               .subscribe({},{
                   Log.e(LOG_TAG, "Error deliver updated token", it)
               })
       }
   }
}

Важные замечания:

  • Предложенное решение работает не во всех случаях. При тестировании на физических устройствах проблем выявлено не было, но на пуле устройств, предоставляемых AppGallery для онлайн-дебаггинга, подход не срабатывает. Причём не срабатывает из за того, что вызова метода HmsMessageService.onNewToken() не происходит, что, кажется, не соответствует документации. Причина такого поведения по сей день остаётся для нас невыясненной;
  • Оказалось, что на некоторых устройствах метод HmsMessageService.onMessageReceived() может вызываться на main потоке, поэтому будьте аккуратнее с походами в БД и сеть из него;
  • Как только вы добавите зависимость от библиотеки com.huawei.hms:push, в манифесте проекта после сборки будет объявлен сервис com.huawei.hms.support.api.push.service.HmsMsgService, сконфигурированный для работы в отдельном процессе :pushservice. С этого момента, при порождении каждого процесса, в нём будет создаваться свой экземпляр класса Application. Это принципиально важно осознавать, если вы обращаетесь к файлам или БД или, например, собираете данные о скорости инициализации приложения через Firebase Performance. Мы встретились с порождением второго процесса только на не-Huawei устройствах, куда были установлены AppGallery и HMS.HUAWEI объявила о запуске HMS Core 4.0 по всему миру

Подключите клавиатуру к социальным аккаунтам

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

Неплохой способ разом познакомить Swype с вашими лингвистическими особенностями — дать ей почитать ваши посты в соцсетях. Если, конечно, их пишет не ваш SMM-щик или пресс-секретарь.

Делается это в настройках клавиатуры:

Пользуйтесь телефоном одной рукой

Смартфоны становятся больше, и бывает, что на ходу не очень удобно набирать текст на экранной клавиатуре. На этот случай в смартфонах Honor есть просто приёмчик, причём даже не нужно лезть в настройки: достаточно провести пальцем от центральной экранной кнопки влево или вправо — и изображение уменьшится (если кнопки отключены — смахните от угла к центру). Вернуться легко — просто нажать на свободное поле на экране.

Послесловие

Регистрация аккаунта разработчика в AppGallery представляет собой гораздо более сложную процедуру, чем в случае с Google. У меня, например, этап проверки подтверждения личности занял 9 дней. Не думаю что так происходит со всеми, но любая задержка способна поубавить оптимизма.

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

Пользуясь выходом в публичное пространство, хочу поблагодарить всю команду Кошелька и особенно umpteenthdev, Артёма Кулакова и Егора Аганина за неоценимый вклад в интеграцию HMS в Кошелёк!

Поставьте видео в качестве рингтона

В оболочке EMUI 9 появилась интересная фича: рингтоном на входящие звонки можно устанавливать не только мелодии, но и видео. Это настраивается и для всех звонков сразу, и для отдельных контактов.

На многие модели Honor уже пришла прошивка с обновленной версией EMUI, на некоторые придёт в ближайшее время:

Разблокируйте телефон, просто подняв его

Современные смартфоны Honor поддерживают разблокировку по лицу — с помощью фронтальной камеры. В паре с этой функцией удобно также использовать «пробуждение» аппарат по поднятию. А ещё стоит настроить разблокировку с переходом сразу на рабочий стол, чтобы не нужно было проводить пальцем по экрану. Получается так: поднимаете смартфон, он вас узнает — и уже готов к работе.

Разделите экран на две части

Если у смартфона большой экран, то можно работать одновременно сразу с двумя приложениями: например, смотреть видеоролик и сверяться с картой или переписываться в чате. В EMUI достаточно провести костяшкой пальца по середине экрана, и программа «сожмётся» (если она поддерживает такую функцию), а в оставшемся пространстве можно будет запустить другую.

Разработка механизма выбора реализации сервисов в рантайме


Как действовать, если на устройстве установлен всего один тип сервисов или их нет вовсе, — понятно, а вот что делать, если одновременно установлены и Google-, и Huawei-сервисы?

Вот что мы обнаружили и из чего исходили:

Разработка алгоритма оказалась, наверное, самым выматывающим делом. Здесь в одну точку сошлось множество технических и бизнесовых факторов, но в конечном итоге нам удалось прийти к наилучшему

для нашего продукта

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

В случае, если на устройстве установлены оба типа сервисов и удалось определить, что версия EMUI < 10 — используем Google, иначе — используем Huawei.Для реализации итогового алгоритма требуется найти способ определить версию EMUI на устройстве пользователя.

Один из способов сделать это — прочитать системные свойства:

class EmuiDataSource {

    @SuppressLint("PrivateApi")
    fun getEmuiApiLevel(): Maybe<Int> = Maybe
        .fromCallable<Int> {
            val clazz = Class.forName("android.os.SystemProperties")
            val get = clazz.getMethod("getInt", String::class.java, Int::class.java)
            val currentApiLevel = get.invoke(
                    clazz,
                    "ro.build.hw_emui_api_level",
                    UNKNOWN_API_LEVEL
            ) as Int
            currentApiLevel.takeIf { it != UNKNOWN_API_LEVEL }
        }
        .onErrorComplete()

    private companion object {
        const val UNKNOWN_API_LEVEL = -1
    }
}

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

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


sealed class MobileServiceEnvironment(
   val mobileServiceType: MobileServiceType
) {
   abstract val isUpdateRequired: Boolean

   data class GoogleMobileServices(
       override val isUpdateRequired: Boolean
   ) : MobileServiceEnvironment(MobileServiceType.Google)

   data class HuaweiMobileServices(
       override val isUpdateRequired: Boolean,
       val emuiApiLevel: Int?
   ) : MobileServiceEnvironment(MobileServiceType.Huawei)
}
class SelectMobileServiceType(
        private val mobileServicesRepository: MobileServicesRepository
) {

    operator fun invoke(
            case: Case
    ): Maybe<MobileServiceType> = mobileServicesRepository
            .getAvailableServices()
            .map { excludeEnvironmentsByCase(case, it) }
            .flatMapMaybe { selectEnvironment(it) }
            .map { it.mobileServiceType }

    private fun excludeEnvironmentsByCase(
            case: Case,
            envs: Set<MobileServiceEnvironment>
    ): Iterable<MobileServiceEnvironment> = when (case) {
        Case.Push, Case.Map -> envs
        Case.Security       -> envs.filter { !it.isUpdateRequired }
    }

    private fun selectEnvironment(
            envs: Iterable<MobileServiceEnvironment>
    ): Maybe<MobileServiceEnvironment> = Maybe
            .fromCallable {
                envs.firstOrNull {
                    it is HuaweiMobileServices
                            && (it.emuiApiLevel == null || it.emuiApiLevel >= 21)
                }
                        ?: envs.firstOrNull { it is GoogleMobileServices }
                        ?: envs.firstOrNull { it is HuaweiMobileServices }
            }

    enum class Case {
        Push, Map, Security
    }
}

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

Очень полезная функция оболочки EMUI — создание «секретного пространства». По сути, в смартфоне можно сделать вторую учётную запись, со своими приложениями (имеет смысл спрятать туда банковские программы), заметками, аккаунтами почты и социальных сетей, галереей фотографий, а также со своим оформлением. И ничто не будет указывать на то, что она вообще существует.

Причём реализовано это предельно удобно: заводится второй PIN-код и/или записывается еще один отпечаток пальца — пусть это будет, скажем, мизинец — чтобы никто не догадался. Вводите этот ПИН (прикладываете «секретный» палец) — и вы уже в закрытом пространстве.

Другое применение этой фичи — учётная запись для ребенка. Можно обустроить отпрыску свой мирок в смартфоне с набором игр и обучалок, но без доступа в вашим «взрослым» приложениям и данным.

Заключение

  1. HMS Core — инструменты для разработчиков создания ПО.
  2. Также необходимы для работы некоторых приложений.
  3. Соответственно удалять — плохая идея. При огромном желании и заранее созданном бэкапе — можно заморозить, используя Titanium Backup.

Удачи.

На главную!14.03.2020

Оцените статью
Huawei Devices
Добавить комментарий