Ошибка биллинга в андроид магнитоле

Добавил пользователь Владимир З.
Обновлено: 19.09.2024

Привет, я Влад, core разработчик Adapty SDK для Android. Продолжаю серию статей про то, как внедрять внутренние покупки в приложение Google Play. Остальные посты можно найти по ссылкам:

Android in-app purchases, часть 4: коды ошибок от Billing Library и как не облажаться с тестированием. — Вы тут.

Сегодня мы поговорим о кодах ошибок, которые мы можем получить от Billing Library в методе getResponseCode().

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

Коды ошибок

Но не всё так просто. Я пошел дальше и в методе launchBillingFlow() использовал измененный SkuDetails (вытащил json из SkuDetails реального продукта, поменял в нем productId и передал в конструктор новому SkuDetails). По сути это invalid argument, и я ожидал получить DEVELOPER_ERROR, но… получил ERROR.

Отдельного упоминания заслуживает текст, который показывается в диалоге в этом кейсе — сравните английский и русский вариант:


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

При этом еще мы видим интересный диалог.


Ну и в случае с отсутствием интернета SERVICE_UNAVAILABLE тоже приходит, тут не соврали.

Вот остальные коды ошибок с небольшими комментариями, так сказать, honorable mentions.

SERVICE_DISCONNECTED (responseCode -1). Приложение иногда дисконнектится от сервиса Google Play. Это может произойти, если Play Store вдруг решит обновиться. Поэтому лучше перестраховаться и коннектиться перед каждым вызовом методов Billing Library, как в предыдущих статьях. А еще мы с гуглом советуем добавить какую-нибудь retry policy, если эта ошибка всё же придет в ответе.

SERVICE_TIMEOUT (responseCode -3). Название говорит само за себя — мы слишком долго ждали ответ от Google Play.

FEATURE NOT SUPPORTED (responseCode -2). В классе BillingClient есть пять констант FeatureType. Их доступность на данном устройстве можно проверять с помощью метода billingClient.isFeatureSupported(BillingClient.FeatureType.НужнаяФича). У меня на телефоне (Xiaomi Mi A2 Lite) FEATURE_NOT_SUPPORTED вернулось только для SUBSCRIPTIONS_ON_VR. При этом для IN_APP_ITEMS_ON_VR, как и для всех остальных фич, вернулось OK.

ITEM_NOT_OWNED (responseCode 8). Возникает при попытке законсьюмить покупку, которой у нас нет. Например, повторно после успешного консьюма.

ITEM_ALREADY_OWNED (responseCode 7). А тут наоборот – при попытке купить продукт, который у нас уже есть. В таком кейсе просто нужно обновить UI и сделать кнопку покупки некликабельной.

Самая популярная ошибка

Последняя и, наверное, самая популярная ошибка в начале пути внедрения in-app purchases — это ITEM_UNAVAILABLE (responseCode 4). Она говорит о том, что продукт недоступен для покупки, но не говорит, почему. А причины могут быть самые разные: от тестирования на неправильном аккаунте или неправильной сборке до покупки неактивированного продукта.

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

Добавить в этот test track гугл-аккаунты тестировщиков, что особенно актуально для internal testing или закрытой альфы/беты. Там же будет ссылка в разделе How testers join your test, по которой тестировщики должны будут принять приглашение.

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

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

applicationId сборки, с которой тестируется покупка, должно полностью совпадать с applicationId из Play Console. Это особенно важно для тех, у кого добавляется суффикс в дебажных сборках.

Добавить email-адреса тестировщиков в раздел Setup → License Testing в левом меню аккаунта (не приложения), чтобы они покупали продукты бесплатно с тестовой карты, а не с реальной. Еще один плюс, что подписки в данном случае будут иметь тестовую длительность. Не связано с этой ошибкой, но тоже полезное знание.

Заключение

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

Про Adapty

Для более простой работы с ошибками советую попробовать Adapty SDK для внедрения внутренних покупок в приложения. Кроме технической части, Adapty даёт много преимуществ:

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

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

А/Б тесты увеличивают выручку приложения.

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

Промо-кампании уменьшают отток аудитории.

Open source SDK позволяет интегрировать подписки в приложение за несколько часов.

Серверная валидация и API для работы с другими платформами.

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

Привет, я Влад, core разработчик Adapty SDK для Android. Продолжаю серию статей про то, как внедрять внутренние покупки в приложение Google Play. Остальные посты можно найти по ссылкам:

Android in-app purchases, часть 4: коды ошибок от Billing Library и как не облажаться с тестированием. — Вы тут.

Сегодня мы поговорим о кодах ошибок, которые мы можем получить от Billing Library в методе getResponseCode().

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

Коды ошибок

Но не всё так просто. Я пошел дальше и в методе launchBillingFlow() использовал измененный SkuDetails (вытащил json из SkuDetails реального продукта, поменял в нем productId и передал в конструктор новому SkuDetails). По сути это invalid argument, и я ожидал получить DEVELOPER_ERROR, но… получил ERROR.

Отдельного упоминания заслуживает текст, который показывается в диалоге в этом кейсе — сравните английский и русский вариант:


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

При этом еще мы видим интересный диалог.


Ну и в случае с отсутствием интернета SERVICE_UNAVAILABLE тоже приходит, тут не соврали.

Вот остальные коды ошибок с небольшими комментариями, так сказать, honorable mentions.

SERVICE_DISCONNECTED (responseCode -1). Приложение иногда дисконнектится от сервиса Google Play. Это может произойти, если Play Store вдруг решит обновиться. Поэтому лучше перестраховаться и коннектиться перед каждым вызовом методов Billing Library, как в предыдущих статьях. А еще мы с гуглом советуем добавить какую-нибудь retry policy, если эта ошибка всё же придет в ответе.

SERVICE_TIMEOUT (responseCode -3). Название говорит само за себя — мы слишком долго ждали ответ от Google Play.

FEATURE NOT SUPPORTED (responseCode -2). В классе BillingClient есть пять констант FeatureType. Их доступность на данном устройстве можно проверять с помощью метода billingClient.isFeatureSupported(BillingClient.FeatureType.НужнаяФича). У меня на телефоне (Xiaomi Mi A2 Lite) FEATURE_NOT_SUPPORTED вернулось только для SUBSCRIPTIONS_ON_VR. При этом для IN_APP_ITEMS_ON_VR, как и для всех остальных фич, вернулось OK.

ITEM_NOT_OWNED (responseCode 8). Возникает при попытке законсьюмить покупку, которой у нас нет. Например, повторно после успешного консьюма.

ITEM_ALREADY_OWNED (responseCode 7). А тут наоборот – при попытке купить продукт, который у нас уже есть. В таком кейсе просто нужно обновить UI и сделать кнопку покупки некликабельной.

Самая популярная ошибка

Последняя и, наверное, самая популярная ошибка в начале пути внедрения in-app purchases — это ITEM_UNAVAILABLE (responseCode 4). Она говорит о том, что продукт недоступен для покупки, но не говорит, почему. А причины могут быть самые разные: от тестирования на неправильном аккаунте или неправильной сборке до покупки неактивированного продукта.

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

Добавить в этот test track гугл-аккаунты тестировщиков, что особенно актуально для internal testing или закрытой альфы/беты. Там же будет ссылка в разделе How testers join your test, по которой тестировщики должны будут принять приглашение.

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

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

applicationId сборки, с которой тестируется покупка, должно полностью совпадать с applicationId из Play Console. Это особенно важно для тех, у кого добавляется суффикс в дебажных сборках.

Добавить email-адреса тестировщиков в раздел Setup → License Testing в левом меню аккаунта (не приложения), чтобы они покупали продукты бесплатно с тестовой карты, а не с реальной. Еще один плюс, что подписки в данном случае будут иметь тестовую длительность. Не связано с этой ошибкой, но тоже полезное знание.

Заключение

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

Про Adapty

Для более простой работы с ошибками советую попробовать Adapty SDK для внедрения внутренних покупок в приложения. Кроме технической части, Adapty даёт много преимуществ:

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

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

А/Б тесты увеличивают выручку приложения.

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

Промо-кампании уменьшают отток аудитории.

Open source SDK позволяет интегрировать подписки в приложение за несколько часов.

Серверная валидация и API для работы с другими платформами.

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

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

Изначально, как и во всех стартапах, у нас не было платных услуг. Первые серьезные шаги в сторону монетизации начались в далеком 2008 году, при том что официально сайт был запущен в 2006-м. Для экспериментов была выбрана Франция, а оплата принималась только через SMS. Сам прием платежей был организован на файлах. Каждый запрос записывался в отдельный файл, который затем перекладывался bash-скриптами из одной папки в другую, что означало смену статусов обработки. База данных использовалась только для учета успешно обработанных транзакций. Такая схема успешно проработала чуть больше года, после чего ее стало сложно поддерживать, и мы решили отказаться от файлов и переписать всё с использованием БД.

Разработка новой версии прошла достаточно быстро, так как стран, где были доступны платные услуги, было не много. Но она была рассчитана только на прием платежей через SMS, из-за этого у нас даже до сих пор сохранилось несколько забавных артефактов, например, поля MSISDN (номер телефона) и short code (короткий номер, на который отсылают платную SMS) в таблице обработанных платежей.

image

У нас доступно около 50-ти способов оплаты, предоставляемых разными партнерами. Самые популярные ― это банковские карты, SMS & Direct billing и покупки в мобильных приложениях.

image

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

image

Банковские платежи

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

SMS-платежи

image

  • отправляем SMS на короткий номер, отвечаем на пришедшее SMS определенным текстом или без него;
  • отправляем SMS на короткий номер, вводим на сайте полученный PIN-код;
  • вводим на сайте номер телефона, получаем PIN-код, вводим его на сайте.

Технические детали

Badoo работает на связке PHP + MySQL, поэтому для обработки платежей мы используем те же технологии. Код выполняется на отдельной группе серверов, выделенной из общего пула. Внутри мы ее разделили еще на несколько логических подгрупп: cерверы для обработки входящих запросов, серверы для фоновых операций и сбора статистики, серверы баз данных, серверы для обработки платежей по банковским картам. Последние выделены в отдельную группу, потому что они должны соответствовать стандарту безопасности PCI DSS, разработанному при участии Visa, MasterCard, American Express, JCB и Discover для организаций, работающих или хранящих данные держателей банковских карт.

image

Поддержка и эксплуатация

После того как новая интеграция выкладывается на продакшн-серверы, наступает этап ее эксплуатации и поддержки. Техническая поддержка занимает примерно 60-70% нашего времени.

image

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

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

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

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

Устранение ошибки приложения Графический интерфейс системы

Чаще всего ошибка связана с программным сбоем, который мог появиться вследствие установки стороннего софта, препятствующего нормальной работе лаунчера или оболочки. Нередко на устройствах Android подобные проблемы возникают и после перепрошивки. Метод устранения неполадки напрямую зависит от провоцирующего фактора и в основном, достаточно программного решения, но в некоторых случаях речь идёт об аппаратных неисправностях, тогда при отсутствии специальных навыков пользователю рекомендуется доверить дело профессионалам.

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

  • Установка приложения, спровоцировавшего конфликт с системой.
  • Кривая прошивка или неправильно выполненная перепрошивка устройства.
  • Повреждение системных компонентов вследствие заражения вирусами.
  • Некорректная работа лаунчера из-за его повреждения (в том числе, вредоносными программами).
  • Забитый кэш лаунчера.
  • Заводской брак Android-устройства.

Общий сброс при решении проблемы

Сброс до заводских настроек

Проще всего выполнить процедуру посредством меню настроек:

Режим Recovery Mode позволяет выполнять множество операций с устройством, в том числе применяется он и с целью решения данной проблемы, что особенно актуально, когда ошибка выскакивает на регулярной основе, не давая подобраться к имеющимся опциям. Сброс осуществляется через встроенное или кастомное рекавери (функционал в этом случае гораздо шире, но для возврата к заводским настройкам достаточно и штатного средства). Так, для решения проблемы проделываем следующее:

Перепрошивка смартфона

Общий сброс настроек не всегда бывает эффективен. Например, в случае серьёзного поражения или удаления системных компонентов вирусами ситуация не изменится. Перепрошивка – это крайний программный метод решения проблемы, но рабочий. Перед тем, как в результате процедуры вы снесёте все данные, необходимую информацию стоит сохранить. При этом копировать софт не нужно, поскольку его элементы могут быть заражены, тем более что программы легко снова инсталлировать из магазина приложений. Чтобы установить заводскую или кастомную прошивку можно использовать тот же Recovery, предварительно скачав файл прошивки и поместив его на внешнюю карту памяти. Далее нужно сделать следующее:

Apply update from external storage

Ошибка графического интерфейса

Причины проблемы с графическим интерфейсом

В большинстве случаев, непосредственной причиной возникновения данной ошибки является некорректная работа ряда мобильных приложений, нестабильная работа ОС Android (обычно, кастомной её версии), а также проблемы в работе карты памяти (microSD) телефона.

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

Ошибка Андроид

  • Удалите недавно установленные приложения. Если проблема возникла недавно, то по одному удалите с устройства недавно установленные приложения, наблюдая, появляется ли ошибка после каждого удалённого приложения. Если после удаления какого-либо приложения проблема не возникает, тогда такое приложение могло выступать причиной возникновения дисфункции;
  • Изымите из устройства карту памяти microSD. Выключите ваш телефон, изымите из него карту памяти, затем включите устройство, и наблюдайте, появиться ли ошибка вновь;

Карта microSD

Изымите карту MicroSD из вашего устройства

Опция wipe data/factory reset

Выберите wipe data/factory reset и подтвердите свой выбор

Заключение

В приложении графический интерфейс произошла ошибка – причины

Собрав информацию в различных интернет ресурсах мы выявили распространенные причины появления ошибки.

  1. Конфликт системы с каким-либо из установленных приложений, игр и прочего софта, что делать в таком случае читайте в абзаце ниже;
  2. Проблема появилась после действия вируса, при этом необходимые для полноценного функционирования системы файлы повреждены, либо удалены. Вирус может “съедать” такие файлы. Зачем? Либо они мешают ему, угрожают его обнаружению, а тогда их надо перезаписать, удалить, либо просто что бы навредить пользователям;
  3. Забитый кэш графического интерфейса системы. Встречается редко, но имеет место быть;
  4. Если у вас установлен “Лаунчер”(лаунчер представляет собой оболочку системы. Все, что вы видите на экране при пользовании смартфоном выводит лаунчер). Он может быть поврежден, либо так же пострадать от вируса;

Графический интерфейс системы

  • Удалить последние установленные приложения, вызывающие конфликт. В первую очередь программы для изменения внешнего вида интерфейса;
  • Переустановить Лаунчер, если таковой используется на устройстве;
  • Переключиться на “стандартную” тему оформления;
  • Очистите кэш графической оболочки. Для этого заходим в Настройки – Приложения – листаем до закладки Все и ищем Графический интерфейс системы и нажимаем. В открывшемся меню выбираем пункт “Очистить Кэш”. В удачных исключениях такой подход помогает.

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

Общий сброс при решении проблемы

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

Перепрошивка смартфона

Перепрошивка 100%й и проверенный способ в борьбе с этой бедой. Мысленно смиритесь с фактом, что придется снести все данные, предварительно сохраните контакты, фото, музыку.

Не делайте “резервное копирование приложений”, вирус останется в зараженных файлах.

IT специалист. Автор информационных статей на тему Андроид смартфонов и IOS смартфонов. Эксперт в области решения проблем с компьютерами и программами: установка, настройка, обзоры, советы по безопасности ваших устройств. В свободное время занимается дизайном и разработкой сайтов.

Графический интерфейс системы произошла ошибка Андроид что делать

Причины возникновения

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



Возникновение ошибки возможно в следующих случаях:

Устраняем ошибку

Из-за чего появляется эта ошибка ясно, теперь следует определиться с тем, каким образом ее устранять. Для начала вспомните, возможно она возникла именно после установки вами какого-то приложения. Тогда следует просто деинсталлировать его, перезагрузить планшет/смартфон на Android Lollipop и проверить, ушла проблема или нет.

Карта памяти

карта памяти

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

Восстановление стандартных настроек

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

    Открыть меню устройства.

Меню Андроид

Сброс настроек Андроид

Сброс настроек через Recovery

recovery mod

Если пользоваться интерфейсом Android из-за выскакивающей ошибки совсем не получается, единственный выход – зайти в Recovery Mod и сделать сброс через него. Как включить данный мод? Выключите устройство, затем зажмите кнопку громкости + и кнопку питания.

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

Перепрошивка

перепрошивка смартфона

Если дела совсем плохи, ничего сделать не получается, тогда только один вариант – перепрошивка. Используйте стоковую прошивку, то есть, заводскую. Инструкции, как это сделать, можно найти на официальном сайте производителя устройства (не всегда) или на форуме 4pda.

Ремонт

ремонт смартфона

Заключение

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

Причины проблемы

Вот некоторые, самые распространённые причины, из-за которых может возникнуть проблема сбоя системы.


  1. На устройство было установлено приложение, которое вступило в конфликт с операционной системой.
  2. Некорректная работа оболочки, которая может быть вызвана: либо программной ошибкой в лаунчере, либо приложение повреждено вирусом.
  3. Производственный брак в самом устройстве.
  4. Установлена некачественная прошивка, либо прошивка установлена неправильно.

Способы исправления

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



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



Если и после этого смартфон/планшет продолжает глючить, то не остаётся ничего, как только его перепрошивать. Рекомендуется для этого использовать только заводской вариант прошивки. Как это сделать? Либо доверить эту операцию профессионалам из центров по обслуживанию (наиболее предпочтительный вариант), либо попытаться сделать это самому, найдя подробную инструкцию на каком-либо из многочисленных форумах (к примеру, 4pda) в сети Интернет.

Читайте также: