Что такое HMS? Все необходимые сведения об экосистеме от Huawei

cbbccaddfedcfdecd Новости

Что можно сделать по телефону

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

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

Также с помощью звонка можно сделать следующее:

  1. Получить доступ к личному кабинету. С помощью этой услуги клиенты могут контролировать свои расходы, совершать платежи и переводы. Специалист банка поможет разобраться во всех тонкостях регистрации и авторизации в личном кабинете.
  2. Подать заявку на получение карты или займа. Через сотрудника банка можно оставить заявку на получение кредитки или кредита наличными. Для этого придется сообщить свои данные, ФИО, а также сведения о работе и паспортные данные. Как правило, решение принимается в течение нескольких минут.

Что такое hms

Компании Huawei надо было срочно искать выход из ситуации и тогда было решено создать конкурентную платформу, которая получила название Huawei Mobile Services или HMS. Вместе с запуском смартфонов Honor 9X Pro, Huawei Mate XS и Honor View 30 Pro была официально представлена и альтернатива Google-сервисам.Что такое HMS? Все необходимые сведения об экосистеме от Huawei

HMS представляет собой платформу от компании Huawei. На своих устройствах она является заменой популярных приложений и гугл-служб, например, облачного хранилища, карт и пр.

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

Компания старается делать для создания своей собственной экосистемы все, что Гугл делает для разработчиков и пользователей устройств, функционирующих на базе ОС Андроид.Что такое HMS? Все необходимые сведения об экосистеме от Huawei

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

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

В первом случае – на поиск соответствующей программы и ее правильной установки, а во втором – на восстановление утраченных данных.

Что входит в hms

В первую очередь, это магазин приложений для Android-устройств под названием

. На сегодняшний день он представляет собой вполне состоявшегося конкурента

И хотя до паритета пока – как от Вашингтона до Пекина, сервис демонстрирует отличную динамику: на момент написания статьи количество разработчиков перевалило за полтора миллиона, причем за три минувших года оно более чем утроилось!

Здесь можно найти для своего смартфона приложения фактически на все случаи жизни.

Хотя скажем прямо: многие из них смотрятся, скорее, суррогатами по сравнению с теми, к которым лишены доступа владельцы смартфонов Huawei.

Кроме того, здесь есть кое-какие игры и даже музыка. Впрочем, здесь ассортимент и вовсе убог.

Облачное хранилище под названием Huawei Cloud – вполне приличная альтернатива Google Диску. Но опять-таки сравнение не в его пользу: 5 Гб бесплатного дискового пространства смотрятся скромно по сравнению с гугловскими 15 Гб. У Яндекса – и то больше.

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

Если места не хватает – его можно прикупить. Цены приблизительно соответствуют гугловским.

Как и другие подобные облачные хранилища, Huawei Cloud не привязан ни к Android, ни к конкретному устройству. Работать с ним можно и с ноутбука либо десктопа.

Голосовой помощник Celia, как легко догадаться, должен заменить Google Assistant. Ключевое слово здесь «должен»: на момент написания статьи прошел уже год с момента его запуска в нескольких странах – а воз и ныне там.

https://www.youtube.com/watch?v=nqcJJZvHaz0

Всего три языка (английский, французский, испанский), скудный набор функций – пока что этот сервис на прорыв ну никак не тянет.

Стриминговый музыкальный сервис Huawei Music тоже пока выглядит не лучшим образом: в ассортименте – классика да какое-то количество «ноунеймов», никому не известных.

Пробиться на этот рынок очень и очень непросто, конкуренты чересчур сильны.

Huawei Браузер – один из доступных вариантов, устанавливаемый по умолчанию вместо Chrome. В AppGallery имеется несколько альтернатив.

На момент написания статьи доступен только для Android, однако компания уже объявила о планах создания десктопной версии.

Темы Huawei – большой выбор тем для изменения внешнего вида Android.

Huawei Pay – платежная система, позволяющая (в теории) использовать технологию NFC. Ограниченный выбор банков-эмитентов карт, которые можно привязать к устройству, приложение «Кошелек», не слишком удобное и продуманное. Словом, до Google Pay этой заготовке пока очень далеко.

Huawei Health – спортивный менеджер, предназначенный для контроля за активностью пользователя, состоянием здоровья, потреблением калорий и кучей других показателей, важных для хорошего самочувствия. Интегрирован с линейками фитнес браслетов от самого бренда и его бывшего суббренда Honor.

HMS Core – компонент, предназначенный для разработчиков, в который входят API, SDK и набор отладочных инструментов.

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

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

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

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

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

Huawei share onehop — простое взаимодействие между устройствами!

В компании Huawei стараются максимально облегчить взаимодействие между устройствами всех типов в рамках единой экосистемы. По случаю появления новых компьютеров серии MateBook компания Huawei решила внедрить в эти устройства функцию общего доступа Huawei Share OneHop. Этот инструмент обеспечивает неприлично удобную передачу данных между смартфоном и ноутбуком.

Вы найдете квадратную наклейку Huawei Share на каждом ноутбуке Huawei. Ее не следует путать с логотипами производителей процессоров или видеокарт — она немного больше, и в нее вшита метка NFC. Как вы, наверное, хорошо знаете, NFC — это стандарт, который позволяет устанавливать беспроводную связь между устройствами, он используется не для передачи данных, а для создания безопасного соединения. Транспортом для данных служит сеть Wi-Fi, к которой должны быть подключены все ваши устройства.

Чтобы использовать функцию Huawei Share, приложите смартфон к этой эмблеме и… ждите волшебства! Да, на данный момент таких функций нет ни у одного другого производителя ноутбуков. Их полезность огромна, а удобство и простота обработки данных достойны похвалы.

Основная функциональность Huawei Share OneHop — обмен файлами между смартфоном и ноутбуком. Достаточно вывести фото или видео на экран смартфона и приложить его к метке на рабочей панели ноутбука, чтобы увидеть то же самое мультимедиа на экране компьютера.

Product flavors

Создадим два product flavor — “hms” и “gms”:

По умолчанию, Android Studio заводит sourceSet main, в котором содержатся общие файлы с кодом. Создаем папки для каждого flavor’a:

 New -> Folder -> Выбираем нужный тип папки:

Затем в build.gradle того модуля, где мы создали папку, должен автоматически вставиться следующий код (например, если мы выбрали hms): 

Теперь Gradle будет включать в сборку файлы, соответствующие выбранному flavor’у. Важно, чтобы файлы в этих директориях имели одинаковое название и лежали в пакетах с одним и тем же названием.

Пример. Мы используем Auth API. У нас будет абстракция — интерфейс AuthRepository, хранящийся в main/, а его имплементации для разных сервисов лежат в gms/ и hms/ директориях — тогда в сборку, например, для HMS, попадет именно имплементация с huawei сервисами.

Если проект многомодульный, то в каждом модуле необходимо прописать flavor’ы и при необходимости source sets. Код с flavor’ами можно вынести в отдельный файл. 

Создадем .gradle файл в корневой папке проекта, назовем его flavors.gradle:

Помимо самих flavor’ов, в экстеншене flavorConfig лежит код с циклом по flavor’ам — там будет определяться app модуль, которому присваивается applicationIdSuffix.

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

Для использования подходящих плагинов во время процесса компиляции можем добавлять такие if-else конструкции:

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

Аналитика и безопасность

В Сore 5.0 Huawei мы запустили систему тегов

(DTM) для отслеживания маркетинговой активности пользователей: она интегрируется как с самими сервисами Huawei, так и со сторонними платформами для отправки и обработки данных. С помощью DTM можно динамически обновлять теги в пользовательском веб-интерфейсе, отслеживать определённые события и отправлять данные на сторонние аналитические платформы.

Одной из фишек новой версии HMS стала аутентификация по лицу с помощью LocalAuthentication Engine. Он работает с инфракрасной камерой, которая строит модель по опорным точкам и производит аутентификацию с помощью ML Kit. 

Наконец, мы уделили внимание и защите контента: для аудиофайлов используется шифрование кеша, для видео — антилитическая система и аутентификация при воспроизведении, а для работы с камерой — сквозное шифрование. Все данные HMS хранит в доверенной среде TEE, в рамках которой и выполняется шифрование.

Внедряем hms сервисы в проект

Почти на каждый сервис Google у Huawei есть альтернатива:

Этот список можно продолжать долго — у Huawei довольно обширный перечень сервисов. Как же подключить их в наш проект?

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

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

Нам нужен инструмент Convertor. Он проанализирует проект на наличие GMS сервисов и покажет места, где требуется заменить код с GMS на HMS.

  1. В меню выбираем HMS > Convertor > New Conversion:

2.В появившемся окошке указываем директорию, где создастся бэкап проекта до конвертации.

3.Здесь плагин представляет результаты анализа проекта: какие GMS сервисы у нас содержатся и какие из них конвертируемые. Также нам предлагается проверить sdk version для соответствия требованиям HMS.

На этом шаге мы должны выбрать стратегию конвертации:

4.После анализа проекта, мы видим список мест в коде, где необходима конвертация.

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

Какие вопросы решаются через горячую линию

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

Внимание! Чтобы воспользоваться помощью сотрудника финансовой организации по телефону, нужно знать свой TRIN.

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

  1. Узнать размер ежемесячного платежа по кредиту наличными или платеж по кредитной карте, который необходимо внести, чтобы уложиться в льготный период.
  2. Уточнить актуальный баланс кредитки или дебетовой карты.
  3. Разобраться в порядке восстановления пароля и доступа к личному кабинету банка Хоум Кредит.
  4. Узнать информацию по текущим кредитным предложениям, которые доступны для оформления.
  5. Уточнить способы блокировки, а также разблокировки банковской карты, как кредитной, так и дебетовой.
  6. Получить информацию о способах оформления кредита или кредитной карточки.
  7. Уточнить реквизиты счета для оплаты платежа.
  8. Разобраться в условиях вклада или иного предложения от банка.
  9. Уточнить адреса отделений финансовой компании в вашем городе, а также адреса банкоматов.
  10. Решить иные вопросы, касающиеся сотрудничества с финансовой компанией.

Звонок на горячую линию может помочь решить только общие справочные вопросы.

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

Конкуренция на рынке мобильных сервисов

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

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

Потому что успех HMS — это вопрос выживания бизнеса. За последние годы (и особенно за период действия санкций) Huawei  сумела добиться невероятного прогресса, продемонстрировав конкурентам, пользователям и экспертам, что значит постоянно внедрять новые продукты и совершенствовать старые с учетом быстрых изменений ситуации.

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

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

Не удается получить доступ к рабочему экрану после обновления

Во время обновления возникли описанные ниже сценарии.

Пакет обновления может быть неисправен. Вы можете попробовать использовать приложения HiSuite или eRecovery для восстановления системы телефона. Выполните следующие действия.

    Восстановление системы телефона с помощью режима восстановления eRecovery

Во время восстановления системы телефона при помощи eRecovery ваши данные могут быть удалены. Если телефон можно включить, сделайте резервную копию данных и убедитесь, что телефон подключен к сети Wi-Fi. Во время обновления убедитесь, что уровень заряда батареи выше 30%, или подключите телефон к зарядному устройству.

  1. Выключите телефон, подключите его к компьютеру или зарядному устройству при помощи USB-кабеля, нажмите и удерживайте кнопкиувеличения громкости и питания одновременно, пока телефон не завибрирует. Затем перейдите в раздел Режим обновления > Режим eRecovery. Некоторые модели, например Mate 30 Pro и Mate 30 RS, не оснащены кнопкой регулировки громкости. В таком случае быстро нажмите на кнопку питания 5 раз подряд после вибрации телефона при включении.
  2. Перейдите в раздел Загрузить последнюю версию и восстановить систему > Загрузить и восстановить. Телефон выполнит поиск доступных Wi-Fi-сетей. После выбора точки доступа Wi-Fi и подключения к ней система автоматически загрузит пакет обновления.
  3. После завершения установки телефон автоматически перезагрузится для завершения обновления. Процесс обновления может занять некоторое время. Не используйте телефон во время обновления.

Использование приложения HiSuite для восстановления системы телефона может привести к потере данных. Если телефон можно включить, сделайте резервную копию данных.


Выключите телефон, подключите его к компьютеру при помощи USB-кабеля, нажмите и удерживайте кнопкууменьшения громкости и кнопкупитания одновременно в течение нескольких секунд, пока телефон не войдет в режим быстрой загрузки (Fastboot).

Некоторые модели телефонов, например Mate 30 Pro и Mate 30 RS, не оснащены кнопкой регулировки громкости. В таком случае выключите телефон, подключите его к компьютеру при помощи USB-кабеля и быстро нажмите на кнопку питания 3–5 раз подряд. Подождите несколько секунд, пока не включится экран. Телефон войдет в режим быстрой загрузки (Fastboot).

Откройте приложение HiSuite > Восстановление системы > Продолжить > Начать.

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

Если проблема не решена, сделайте резервную копию данных и обратитесь в авторизованный сервисный центр Huawei.

Обновление hms core | huawei поддержка россия

Чтобы обновить HMS Core, выполните следующие действия.

Если справа от имени приложения отображается кнопка Обновить, в настоящее время вы используете не последнюю версию HMS Core. Нажмите Обновить для обновления.

Если справа от имени приложения отображается кнопка Открыть, в настоящее время вы используете последнюю версию HMS Core.

Если функция Автообновление по Wi-Fi включена, HMS Core будут автоматически обновляться, когда ваше устройство подключено к сети Wi-Fi и уровень заряда батареи выше 30%.

Чтобы отключить автоматическое обновление HMS Core, выполните следующие действия (в качестве примера используется EMUI 11.0).

  1. Перейдите в раздел , выполните поиск по запросу «HMS Core» и откройте меню О приложении.
  2. Перейдите в раздел и выключите Автообновление по Wi-Fi.

Поддержка 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.Что такое HMS? Все необходимые сведения об экосистеме от Huawei

Преимущества регистрации huawei id

Если говорить о преимуществах, которые Huawei ID в настоящее время предоставляет пользователям смартфонов, то следует отметить следующие пункты:

  • персонализация смартфона;
  • синхронизация системных настроек между вашими устройствами;
  • доступ к облаку Huawei (функция сетевого диска);
  • выполнение резервного копирования системы смартфона с точным разделением на отдельные категории данных, которые мы хотим скопировать;
  • идентификация в приложениях Блокнот, Галерея, Здоровье, Браузер Huawei и синхронизация собранных в них данных между устройствами;
  • доступ к службам поддержки, акциям и вознаграждениям;
  • доступ к AppGallery — магазину и репозиторию приложений Huawei, предназначенному для полной замены Google Play;
  • доступ к Huawei Music, Huawei Video и Huawei Reader — мультимедийным и текстовым источникам, которые стремятся стать альтернативой сторонним решениям (это услуги, которые все еще ожидают полноценного внедрения в Украине и других странах);
  • Huawei Assistant, умный помощник и органайзер в смартфоне.

Некоторые преимущества пока не так заметны, но если Huawei сможет реализовать все свои планы (или, по крайней мере, те, о которых мы знаем), пользователь, купивший смартфон этого бренда, получит доступ к богатой контентной среде, которая позволит раскрыть потенциал устройства или устройств.

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

Как действовать, если на устройстве установлен всего один тип сервисов или их нет вовсе, — понятно, а вот что делать, если одновременно установлены и 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
    }
}

Совместная работа устройств

В новой версии HMS Core появилось несколько новых движков для совместной работы разных устройств. Мы упростили взаимодействия между устройствами и умными вещами с помощью

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

В этом же направлении мы разработали Cast Engine, который позволяет телефону работать в мультиэкранном режиме и передавать изображение на TV с высоким разрешением. Также планируем добавить возможность работать с Cast Engine через другие приложения.

Ещё один новый движок OneHop Kit работает с NFC и позволяет безопасно передавать данные между устройствами «в одно касание». С его помощью можно синхронизировать устройства Huawei между собой, передавать файлы и открывать приложения на других устройствах с теми же настройками, что и на основном.

Телефон завис на экране с логотипом после обновления

  1. Если телефон завис на экране с логотипом на долгое время, зарядите его в течение не менее 30 минут, а затем попробуйте снова включить телефон.
  2. Если телефон по-прежнему не включается, нажмите и удерживайте кнопку питания в течение 10 секунд для принудительной перезагрузки телефона (чтобы принудительно перезагрузить устройства серии Mate 40, нажмите и удерживайте кнопку питания и кнопку уменьшения громкости одновременно не менее 10 секунд).
  3. Если при загрузке телефон переходит в режим eRecovery, выберите опцию перезагрузки, чтобы проверить, корректно ли включается телефон.
  4. Если проблема не решена, подключите телефон к сети Wi-Fi и используйте режим eRecovery для восстановления системы телефона. Либо восстановите систему телефона с помощью приложения HiSuite.

Если проблема не решена, создайте резервную копию данных и восстановите заводские настройки устройства. Если проблема не решена ни одним из вышеперечисленных способов, обратитесь в авторизованный сервисный центр Huawei.

https://www.youtube.com/watch?v=KbJkwefA09E

На китайских телефонах брендов Mate и Honor от производителя Хуавей появились малознакомые большинству пользователей программы. Непривычное ПО вызывает много сложностей и вопросов. Читайте подробнее о том, что такое HMS Core в смартфоне Huawei, и действительно ли необходима эта программа на вашем устройстве.

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