2017-09-22 3 views
0

J'ai du mal à comprendre comment rendre mon application disponible sur certains appareils, mais exclure d'autres appareils. J'ai Acer Iconia One 7 B1. .. Écran 7" , 800x1280 pixels et 216 densité ppi Lors de la première version de mon application, Google Play a dit qu'il était pas compatible avec ma tablette Ce fut mon manifeste au début:Prise en charge de plusieurs écrans - utilisation de <écrans compatibles>

<compatible-screens> 
     <!-- all normal size screens --> 
     <screen android:screenDensity="mdpi" android:screenSize="normal" /> 
     <screen android:screenDensity="hdpi" android:screenSize="normal" /> 
     <screen android:screenDensity="xhdpi" android:screenSize="normal"/> 
     <screen android:screenDensity="xxhdpi" android:screenSize="normal"/> 
     <!-- mdpi and hdpi large size screens --> 
     <screen android:screenDensity="mdpi" android:screenSize="large" /> 
     <screen android:screenDensity="hdpi" android:screenSize="large" /> 
     <!-- mdpi x-large size screens --> 
     <screen android:screenDensity="mdpi" android:screenSize="xlarge" /> 
    </compatible-screens> 

    <uses-sdk 
     android:minSdkVersion="19" 
     android:targetSdkVersion="25" 
     /> 

Après des recherches, j'ai trouvé que ma tablette avait tvdpi densité alors j'ai ajouté quelques lignes à la Manifest pour inclure tous les écrans de taille normale:

<screen android:screenSize="normal" android:screenDensity="213"/> 
<screen android:screenSize="normal" android:screenDensity="420"/> 
<screen android:screenSize="normal" android:screenDensity="560"/> 
<screen android:screenSize="normal" android:screenDensity="xxxhdpi"/> 
<!-- to exclude TVs --> 
     <uses-feature android:name="android.hardware.touchscreen" 
        android:required="true"/> 

Quand je la version ajout 2 de mon application, la console Google m'a montré un avertissement que le apk mis à jour supporte les appareils moins que la version 1 malgré l'ajout de plus d'écrans compatibles !!! S'il vous plaît aidez-moi à comprendre ce que je fais mal? Fondamentalement, je dois prendre en charge toutes les tailles d'écran normales possibles, peu importe la densité; grand MDPI et HDPI et également très grand MDPI.

Répondre

0

Après avoir examiné ce pendant deux jours (honte à moi de prendre cette longue), je regardais dans le gestionnaire AVD dans Android Studio pour découvrir que le Nexus 7, qui a les mêmes caractéristiques que mon Acer Iconia, est considéré comme grand, pas normal. Une fois que je changé le

<screen android:screenSize="normal" android:screenDensity="213"/> 

à:

<screen android:screenSize="large" android:screenDensity="213"/> 

et téléchargé le nouveau fichier APK le Play Store, ma tablette est finalement compatible avec l'application. J'espère que cela aide quelqu'un un jour où ils ne peuvent pas comprendre pourquoi leur tablette tvdpi est jugée non compatible avec leur application.

0

Votre code pour exclure la TV est ma conjecture pour le coupable, les applications TV ne peuvent être prises en charge en utilisant la bibliothèque Leanback Intent (qui est désactivée par défaut).

En forçant l'écran tactile vous éliminez seulement quelques appareils (y compris les boîtes bon marché Android TV qui exécutent la version téléphone android)

0

Il semble que vous ne devriez pas utiliser <compatible-screens> du tout.

De la documentation:

Attention: Normalement, vous ne devriez pas utiliser cet élément manifeste. L'utilisation de cet élément peut réduire considérablement la base d'utilisateurs potentielle pour votre application, en ne permettant pas aux utilisateurs d'installer votre application s'ils disposent d'un périphérique avec une configuration d'écran que vous n'avez pas répertoriée. Vous ne devez l'utiliser qu'en dernier recours, lorsque l'application ne fonctionne absolument pas avec des configurations d'écran spécifiques.

Vous dites "Je dois prendre en charge toutes les tailles d'écran normales possibles, peu importe la densité". Si cela signifie que vous devez exclure les tailles d'écransmall, vous pouvez utiliser l'élément <supports-screens> à la place. Quelque chose comme

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

Je l'ai considéré mais je dois aussi exclure XHDPI + XXHDPI et aussi exclure X-large HDPI, XHDPI et XXHDPI ...J'ai lu les docs concernant les mais il n'y a pas d'autre option quand il s'agit de cas particuliers où certaines tailles d'écran avec une certaine densité doivent être incluses mais d'autres exclues. – ZenOctober

+0

Pourquoi devez-vous les exclure? Je demande parce que je trouve que, souvent, les développeurs new-yorkais pensent aux écrans en termes très rigides ... et souvent la bonne "réponse" est juste de cesser de s'inquiéter de ce qui se passe si quelqu'un avec un gros téléphone obtient votre application. –

+0

J'utilise SurfaceView avec beaucoup de graphiques qui semblent petits de très grands téléphones/tablettes. J'ai fourni à peu près assez de drawables pour couvrir les écrans normaux et ils ont l'air plutôt OK sur les écrans plus grands, mais pas sur tous. – ZenOctober