Как работает Google Play, если приложение совместимо с моим устройством?

У меня есть один «обычный» Android-планшет, и часто, когда я прихожу установить приложение, Google Play говорит, что оно несовместимо с моим устройством. Это происходит даже в таких популярных приложениях, как Twitter, Instagram, Evernote, Foursquare и даже Google Maps!

Я знаю , что это работает, потому что, если я скопирую APK с моего телефона Motorola на этот планшет и установлю его вручную, он будет работать нормально (по крайней мере, Instagram и Twitter).

Я не пытаюсь заставить Instagram работать на моем планшете. Я пытаюсь найти способ установить приложения из Play Store.

Google Play говорит, что приложения несовместимы

Как и где Google Play выполняет проверку совместимости моего устройства? Я подозреваю, что указанная проверка как-то не работает. Я хочу иметь возможность устанавливать приложения, которые будут работать на моем устройстве, и чтобы Google Play не мешал мне.

Приложения не заблокированы из-за страны моего устройства, я знаю это, потому что, когда оно заблокировано из-за страны, сообщение отличается i.imgur.com/B69bn.png, и оно даже не отображается в Google Play, Мне нужно открыть страницу на рабочем столе.
И мой телефон Motorola Defy, и мой родной планшет Genesis работают под управлением Android 4 (Cyanogenmod 9 в случае моего телефона, неизвестная прошивка в случае планшета).

Ответы (2)

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

Это могут быть требования к оборудованию или программному обеспечению, например, если приложению требуется GPS или функции телефонии, или если оно будет работать только на определенной версии Android.

Когда вы используете Google Play, он отправляет «функции» вашего устройства на сервер, а затем соответствующим образом фильтрует приложения.

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

Некоторые планшеты имеют низкое разрешение, а также сообщают google play, что не могут перейти в портретный режим.

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

Я узнаю, что нужно приложению Instagram (посмотрите на его манифест), и отредактирую этот ответ для вас.

РЕДАКТИРОВАТЬ:

Согласно манифесту Instagram, единственным «обязательным» элементом является версия glEs — минимум 131072. Это также может быть связано с настройкой страны/оператора вашего планшета.

Твиттеру требуется как минимум Android 2.1, а также может потребоваться вибратор, поскольку он использует разрешение на вибрацию.

Нет, это не из-за страны моего устройства и не из-за оператора связи. У него нет оператора связи (нет возможностей GSM или телефона), и когда какое-то приложение заблокировано из-за страны, отображается другое сообщение -- i.imgur.com/B69bn.png
@ruda.almeida Просто преодолеваю все границы...
Нет проблем, я просто предоставил больше данных, спасибо за ваши усилия!
@ruda.almeida Если приложение запрашивает разрешение на телефонию (для отправки/получения текстов), то ему также потребуется телефонное оборудование.

Я знаю, что вы не думаете, что это связано с вашей страной, ОДНАКО я заметил, что ваш скриншот был на языке, отличном от английского. Я разработчик Android, поэтому я немного знаком с локализацией . В основном у приложений есть определенные, localesкоторые «представляют собой комбинацию языка/страны/варианта. Локали используются для изменения представления информации, такой как числа или даты, в соответствии с соглашениями в регионе, который они описывают» (см. это на сайте разработки Android ). Это бросилось в глаза:

Код Java приложения ссылается только на две строки, text_a и text_b. Это приложение включает в себя локализованный файл ресурсов (res/values-en/strings.xml), который определяет text_a и text_b на английском языке. Это приложение также включает файл ресурсов по умолчанию (res/values/strings.xml), который включает определение для text_a, но не для text_b:

Это приложение может компилироваться без проблем. IDE, такая как Eclipse, не будет выделять какие-либо ошибки, если ресурс отсутствует. Когда это приложение запускается на устройстве с английским языковым стандартом, приложение может работать без проблем, поскольку файл res/values-en/strings.xml содержит обе необходимые текстовые строки. Однако пользователь увидит сообщение об ошибке и кнопку принудительного закрытия, когда это приложение будет запущено на устройстве, для которого выбран язык, отличный от английского. Приложение не загружается.

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

Интересно, я понятия не имел об этом (и я подозреваю, что некоторые разработчики тоже могут не знать). Однако и мой телефон, и планшет настроены на работу на одном языке. Я знаю, что есть несколько различных системных атрибутов для определения языка, страны, локали и т. д. У меня есть несколько системных приложений, которые отображают это, я собираюсь запустить его и добавить информацию к моему вопросу.
Рад, что смог открыть для вас новую дверь. Возможно, вы захотите проверить две страницы для разработчиков, которые я предоставил, потому что там может появиться что-то, что поможет вам.
Проверки совместимости Google Play не основаны на региональных настройках. Кроме того, разработчик обычно использует ресурсы одной локали (например, английский) по умолчанию, поэтому в неподдерживаемой локали он просто использует ресурсы по умолчанию.