2010-09-07 4 views

Répondre

6

Malheureusement, dans l'état actuel du marché, vous n'êtes pas en mesure de le faire . Selon le <supports-screens>reference doc - vous pouvez seulement filtrer par la "taille de l'écran", et comme vous l'avez noté, les résolutions WVGA/FWVGA sont "normales".

Vous pouvez avoir votre application détecter à l'aide de la classe programatically DisplayMetrics en utilisant heightPixels et widthPixels mais c'est seulement après qu'il a été acheté/installé, ce qui est ce que je suppose que vous voulez éviter.

0

MISE À JOUR: Cela ne fonctionne pas (voir les commentaires ci-dessous)

Dans votre manifeste:

<supports-screens 
    android:largeScreens="true" 
    android:normalScreens="false" 
    android:smallScreens="false"/> 
+0

Selon le tableau 1 sur http://developer.android.com/guide/practices/screens_support.html, 240dpi WVGA (480x800), 3.3 "-4.0" diagonale et FWVGA (480x854), 3.5 "-4.0 "Les écrans diagonaux sont considérés comme" normaux ", pas" grands ". Si je ne me trompe pas, l'utilisation de normalScreens = "false" comme vous l'avez mentionné empêchera ces appareils de découvrir l'application. Ai-je raison? – yuku

+0

Hmm ... vous avez raison. Mon erreur. Je ne suis pas vraiment sûr que tu puisses faire ça. Voter la question. –

2

Je n'ai pas essayé cela sur Android, mais je pense que cela devrait fonctionner:

  • Faites votre application une application d'essai, de sorte qu'il est libre de télécharger, mais pas dire libre après un jour.
  • Maintenant, dans votre application, l'une des deux choses, au démarrage de l'application soit détecter la taille de l'écran et afficher simplement un message générique disant que cette résolution d'écran n'est pas supportée et afficher le bouton de sortie. Une autre façon de faire est d'avoir le dossier layout-480x320 afficher le même message et de fournir un bouton de sortie pour quitter l'application. De cette façon, toutes les tailles d'écran non prises en charge peuvent afficher ce message et ne pas avoir de fonctionnalité. Le dossier layout par défaut aura bien sûr l'interface utilisateur pour les tailles d'écran prises en charge. De cette façon, sur les périphériques non pris en charge, vous pouvez également indiquer quels sont les types de combinés pris en charge dans le message. N'oubliez pas d'avoir <supports-screens android:anyDensity="false" /> dans votre fichier manifeste.
  • Maintenant, lorsque l'utilisateur télécharge votre application sur des appareils non pris en charge, il ne sera pas facturé en raison d'un jour d'essai et sera clairement montré que son appareil n'est pas pris en charge et peut quitter et désinstaller l'application.

Cela ne rendra pas votre application invisible sur les résolutions non prises en charge mais permet un mécanisme simple et propre à communiquer à l'utilisateur.

+0

Cela peut nuire à votre positionnement sur l'Android Market. Dans mon expérience de publication personnelle, le pourcentage «utilisateur actif» semble être l'un des facteurs les plus importants dans l'algorithme de marché. –

0

En ce qui concerne un android app est concerné, je ne suis pas sûr. Bonne question.

Cependant, si vous écrivez une application de navigateur en HTML/Javascript, vous pouvez vérifier Javascript en utilisant une combinaison de screen.width/height, document.documentElement.clientWidth/Height, et quelques autres méthodes. Si vous le vouliez vraiment, ce serait un moyen de bloquer votre site à partir de machines en basse résolution.

Vous pouvez également spécifier CSS pour réagir différemment en fonction de la taille de l'écran en utilisant des requêtes média, bien que cela soit moins lié au blocage et plus à l'adaptation à l'environnement.

Le site Web Quirksmode has a good article sur les subtilités de la taille de l'écran de dtermining et d'autres attributs dans un environnement de navigateur mobile.

+0

pourquoi -1? Je ne comprends pas. – Sajmon

1

après avoir frappé google dur je l'ai trouvé config comme manifeste:

<compatible-screens> 
<screen android:screenSize=["small" | "normal" | "large" | "xlarge"] 
     android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi"] /> 
... 

comme décrit here.

dans votre cas, vous pouvez réduire les téléchargements aux tailles suivantes:

WVGA800 (480x800) WVGA854 (480x854) 600x1024

ces écrans ont 71% du marché.

faites défiler vers le bas sur les liens suivants pour trouver des parts de marché et des «noms» de résolution.

market share

scroll down to find resolution names

Espoir qui est helpin dehors. Cheers

Questions connexes