Programación Android, Restringir aplicación para dispositivos smartphone o tablet

Share if you like...Share on Facebook0Tweet about this on TwitterShare on Google+0Share on LinkedIn0

smpartphone_tablet

Aunque es una práctica no recomendada por Google, en ciertas ocasiones podemos necesitar que una aplicación esté destinada al uso exclusivo en determinados tipos de dispositivos, ya sea para un Smartphone o una Tablet. Para estos casos tenemos  la opción de restringir para qué dispositivos está destinada la aplicación a través del manifiest.xml de nuestro proyecto, utilizando la etiqueta <compatible-screens> y en su interior definir tantas pantallas como necesitemos, teniendo en cuenta que para cada tamaño de pantalla también tenemos que indicar a qué densidades queremos dar soporte.

Esto quiere decir que, si por ejemplo queremos dar soporte a pantallas de tamaño large (que hacen referencia a las tablets de 7′) en realidad deberemos indicar 4 pantallas distintas en el manifiest.xml, una por cada densidad: ldpi, mdpi, hdpi y xhdpi. Si quisieramos además dar soporte a pantallas de 10′ haríamos lo mismo con las de tamaño xlarge, con lo que el manifiest.xml contendría las siguientes etiquetas:

<compatible-screens>
    <screen
        android:screenDensity="ldpi"
        android:screenSize="large" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="large" />
    <screen
        android:screenDensity="hdpi"
        android:screenSize="large" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="large" />
    <screen
        android:screenDensity="ldpi"
        android:screenSize="xlarge" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="xlarge" />
    <screen
        android:screenDensity="hdpi"
        android:screenSize="xlarge" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="xlarge" />
</compatible-screens>

Por otra parte, si lo que nos interesa es dar soporte a pantallas de smartphones, indicaremos las pantallas para tamaños small y normal:

<compatible-screens>
    <screen
        android:screenDensity="ldpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="hdpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="ldpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="hdpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="normal" />
</compatible-screens>

Un error que he encontrado en múltiples foros y blogs es la tendencia a definir si es un smartphone o una tablet indicando en el manifiest.xml que la aplicación requiere que el hardware del sistema contenga la propiedad telephony:

<uses-feature android:name="android.hardware.telephony" android:required="true" />

Esta propiedad indica que requiere que el sistema tenga la propiedad de teléfono, y parece lógico pues lo que queremos es que sólo se pueda utilizar nuestra aplicación en smartphones. Sin embargo presenta un fallo, debido a la ambigüedad de nombres, y es que en realidad lo que quiere decir es que requiere que el sistema tenga capacidad de admitir una sim, para recibir señal telefónica.

Si bien aún puede seguir pareciendo lógico utilizar este método, no podemos olvidar el detalle de que hoy en día existen múltiples modelos de tablet que también incorporan sim y que por lo tanto cumplirían este requisito, por lo que serían aptas para instalar nuestra aplicación cuando en realidad no es nuestro objetivo.

Share if you like...Share on Facebook0Tweet about this on TwitterShare on Google+0Share on LinkedIn0
The following two tabs change content below.
Reborn as IT Developer. Desarrollador Android y fundador de Proyecto Simio. "En realidad, yo no puedo enseñar nada a nadie, sólo puedo hacerles pensar." - Sócrates.

2 thoughts on “Programación Android, Restringir aplicación para dispositivos smartphone o tablet

  1. Buenísimo. E estado buscando la manera de eliminar facebook de mi tablet, al igual que twitter y skype. Pero sacarlos de raíz. Sabes si se puede hacer eso? si se puede acceder al sistema de una tablet 7´ y eliminar estos

Deja un comentario