О проблемах с PlayMarket Google Play (прежнее название Android Market) - это магазин приложений, а также игр и книг от компании Google. Этот магазин доступен через браузер либо из приложения Google Play Mаркет (PlayMarket) на любом устройстве с ОС Android. При старте приложения PlayMarket оно передает на сервер Google Play информацию об особенностях устройства, на котором оно запущено. Эта информация используется и учитывается сервером при поиске или выборе запрошенных приложений таким образом, чтобы не показывать приложения, которые не подходят для данного устройства или не смогут на нем выполняться из-за отсутствия необходимого функционала. Пользователи ТВ-боксов достаточно часто сталкиваются с ситуацией, когда при обновлении прошивки (или сразу в стоковой прошивке) обнаруживается странное поведение приложения PlayMarket, которое проявляется в том, что из него как бы пропадают многие привычные и полезные приложения. И при попытке поиска того или иного нужного приложения найти его невозможно. На самом деле, с самим приложением PlayMarket ничего не произошло, однако при обновлении изменились XML-файлы (их набор или содержимое), имеющиеся в папке Permissions. Например, в папке /vendor/etc/permissions структура файлов имела вид:
Но после обновления версии прошивки из этой папки пропал файл android.hardware.touchscreen.multitouch.xml. И в результате резко изменилось в худшую сторону поведение PlayMarket, который перестал находить и показывать нужные приложения. ( При этом некоторые пользователи ТВ-боксов даже воспринимают это как замену в прошивке приложения PlayMarket на некий урезанный вариант.) Если посмотреть содержимое этого файла, то мы увидим, что в нем лежат всего три строки, которые сопровождаются таким комментарием: "Это стандартный набор функций для сенсорного экрана, который поддерживает базовый мультитач с поддержкой жестов, но не полностью независимое отслеживание пальцев." <permissions> <feature name="android.hardware.touchscreen" /> <feature name="android.hardware.touchscreen.multitouch" /> <feature name="android.hardware.faketouch" /> </permissions> Если открыть любой другой XML-файл в этой папке, то в нем также обнаружатся одна или несколько строк аналогичного формата. Попробуем теперь разобраться в механизме влияния этих файлов и содержащихся в них строк на поведение приложения PlayMarket, а также некоторых других приложений. Если совсем упрощенно: в манифесте любого приложения имеются элементы <uses-feature>, в которых объявлены функции устройства, необходимые для нормальной работы этого приложения. В свою очередь, в XML-файлах конкретного устройства прописаны функции, которые доступны в данном устройстве и могут быть выполнены. Приложение PlayMarket при запросе на установку (или в поиске) какого-либо приложения, имеющегося в его хранилище, сравнивает функции приложения и устройства на предмет соответствия желаемого действительному. В приведенном выше примере из-за удаления файла android.hardware.touchscreen.multitouch.xml описанные в нем функции для работы с тачскрином (сенсорным экраном) тоже исчезли. Поэтому для плей-маркета такое устройство (тв-бокс) становится непригодным для установки приложений, требующих (если это объявлено в их манифестах) для своей нормальной работы наличие тачскрина. Хотя при этом многие из этих приложений будут на этом тв-боксе продолжать нормально работать, если их установить из другого источника. Более подробно и в деталях эти процессы описаны здесь в разделах: Приведенная здесь справочная информация основана на первоисточнике: Использование элементов feature Примечания1. На самом деле, этот документ (по ссылке) адресован, в первую очередь, разработчикам приложений, но содержащаяся в нем информация может быть полезна для понимания проблем, возникающих на конкретном устройстве (например, ТВ-боксе) при использовании плей-маркета или других приложений. 2. В оригинальном доументе используется термин Features ("фичи", особенности и т.д.), которые здесь переведены как Функции. |