17 votes

Comment Google Play détermine-t-il si une application est compatible avec mon appareil ?

J'ai une tablette Android "générique", et souvent, lorsque je viens installer une application, Google Play me dit qu'elle est incompatible avec mon appareil. Cela se produit même sur des applications populaires telles que Twitter, Instagram, Evernote, Foursquare et même Google Maps !

I connaître cela fonctionne, car si je copie l'APK de mon téléphone Motorola sur cette tablette et que je l'installe manuellement, cela fonctionne bien (au moins Instagram et Twitter le font).

Je suis ne pas essayer de faire fonctionner Instagram sur ma tablette. J'essaie de trouver un moyen d'installer les applications à partir du Play Store.

Google Play says apps are incompatible

Comment et où Google Play effectue-t-il un contrôle de compatibilité sur mon appareil ? Je pense que cette vérification échoue d'une manière ou d'une autre. Je veux pouvoir installer des applications qui fonctionneront sur mon appareil et empêcher Google Play de m'en empêcher.

2 votes

Les applications ne sont pas bloquées en raison du pays de mon appareil, je le sais car lorsqu'elles sont bloquées en raison du pays, le message est différent. i.imgur.com/B69bn.png et il ne s'affiche même pas sur Google Play, je dois ouvrir la page sur mon bureau.

1 votes

Mon téléphone Motorola Defy et ma tablette Gerenic Genesis fonctionnent tous deux sous Android 4 (Cyanogenmod 9 dans le cas de mon téléphone, rom inconnue dans le cas de la tablette).

10voto

Liam W Points 8336

Lorsque les développeurs créent des applications, ils doivent préciser les exigences en matière de matériel et de logiciel dans un fichier appelé le androidmanifest.xml fichier.

Il peut s'agir d'exigences matérielles ou logicielles, par exemple si l'application a besoin d'un GPS ou de fonctions de téléphonie, ou si elle ne fonctionne que sur une certaine version d'Android.

Lorsque vous utilisez Google Play, il envoie les "caractéristiques" de votre appareil au serveur, puis filtre les applications en conséquence.

La raison la plus probable pour laquelle il est jugé incompatible par Google Play est qu'il est configuré pour nécessiter une certaine résolution d'écran - ou peut-être les modes portrait/ paysage par défaut.

Certaines tablettes ont une faible résolution, et indiquent également à Google Play qu'elles ne peuvent pas passer en mode portrait.

Il se peut aussi, votre tablette étant générique, qu'elle ne dispose pas du GPS ou des capteurs requis par le fichier manifiest, et que le marché vous empêche d'installer à cause de cela.

Je vais trouver ce dont l'application instagram a besoin (regarder le manifeste), et éditer cette réponse pour vous.

EDITAR:

Selon le manifeste d'Instagram, le seul élément "requis" est la version glEs - minimum 131072. Cela pourrait également être dû au paramétrage du pays/de l'opérateur de votre tablette.

Twitter a besoin d'un minimum d'Android 2.1, et peut également avoir besoin d'un vibreur, car il utilise la permission de vibrer.

1 votes

Non, ce n'est pas à cause du pays de mon appareil, ni de l'opérateur. Il n'a pas d'opérateur (pas de GSM ou de capacités téléphoniques), et quand une application est bloquée à cause du pays, le message affiché est différent i.imgur.com/B69bn.png

0 votes

@ruda.almeida Je couvre juste toutes les frontières...

0 votes

Pas de problème, je ne faisais que fournir des données supplémentaires, merci pour vos efforts !

0voto

ninge Points 313

Je sais que vous ne pensez pas que c'est dû à votre pays MAIS j'ai remarqué que votre capture d'écran était dans une autre langue que l'anglais. Je suis un développeur Android et je suis donc un peu familier avec les langues suivantes localisation . En fait, les applications ont certaines locales qui "représente une combinaison langue/pays/variante. Les locales sont utilisées pour modifier la présentation d'informations telles que des nombres ou des dates afin de les adapter aux conventions de la région qu'elles décrivent" (cf. ceci sur le site de développement d'Android ). Ceci a attiré mon attention :

Le code Java d'une application ne fait référence qu'à deux chaînes de caractères, text_a et text_b. Cette application comprend un fichier de ressources localisé (res/values-en/strings.xml) qui définit text_a et text_b en anglais. Cette application comprend également un fichier de ressources par défaut (res/values/strings.xml) qui inclut une définition pour text_a, mais pas pour text_b :

Cette application pourrait compiler sans problème. Un IDE tel que Eclipse ne mettra pas en évidence d'erreurs si une ressource est manquante. Lorsque cette application est lancée sur un appareil dont les paramètres linguistiques sont définis sur l'anglais, l'application peut s'exécuter sans problème, car res/values-en/strings.xml contient les deux chaînes de texte nécessaires. Cependant, l'utilisateur verra un message d'erreur et un bouton "Forcer la fermeture". lorsque cette application est lancée sur un appareil dont la langue est différente de l'anglais. autre que l'anglais. L'application ne se chargera pas.

Vous remarquerez que l'application peut compiler sans problème, mais qu'elle peut aussi afficher un message d'erreur et forcer la fermeture si l'appareil possède une locale qui n'est pas prise en charge par cette application. Je sais que ce n'est pas ce qui vous arrive, mais cela pourrait être lié à votre problème, car Google Play verra que votre appareil est réglé sur une locale que l'application en question ne prend pas en charge ou pour laquelle elle ne dispose pas d'un ensemble spécifique de ressources. Google Play peut alors masquer cette application sur votre appareil, même si elle peut fonctionner correctement grâce aux ressources par défaut que le développeur a probablement écrites. Cependant, Google Play peut décider qu'il ne veut pas risquer de voir un client en colère à cause d'un problème de fermeture forcée et peut donc la masquer complètement. Encore une fois, ce n'est qu'une idée et je réalise que vous voyez un message différent pour l'incompatibilité avec votre pays. J'espère que cela vous aidera.

1 votes

Intéressant, je n'en avais aucune idée (et je soupçonne quelques développeurs de ne pas être au courant non plus). Cependant, mon téléphone et ma tablette sont configurés pour travailler dans la même langue. Je sais qu'il y a quelques différents attributs système pour définir la langue, le pays, la locale etc, j'ai quelques applications système qui l'affichent, je vais l'exécuter et ajouter l'info à ma question.

1 votes

Heureux d'avoir pu ouvrir une nouvelle porte pour vous. Vous pourriez vouloir vérifier les deux pages de développeurs que j'ai fournies, car quelque chose pourrait y apparaître pour vous aider.

2 votes

Les vérifications de compatibilité de Google Play ne sont pas basées sur les langues. De plus, il est normal que le développeur ait les ressources d'une locale (comme l'anglais) par défaut, donc dans une locale non prise en charge, il utilisera simplement les ressources par défaut.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X