Android Application Incompatible with Tablet (PlayStore Information)

2

I recently developed an app that I published in google play store with all the necessary requirements, however when trying to download on an Asus Zenpad 3S 10 Z500M tablet this appears incompatible and does not allow downloading.

I've been seeing the list of compatible devices with my app that google play store releases and dozens of tablet's are compatible ...

Why is this particular template not supported? The android version is 6.0.1 compatible, will it be by screen resolution? But I created for all Views the layout-normal, layout-large and layout-xtra-large.

Here is the manifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.nuno.bombeiros.bombeirospt">

    <!-- Permissions -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.SEND_SMS" />

    <application
        android:name="android.support.multidex.MultiDexApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <!--
        To resolve problems of firebase in old Versions 4.0.1 at 4.4
        android:name="android.support.multidex.MultiDexApplication"
        -->


        <!-- Main Activity -->
        <activity android:name=".MainActivity.MainActivity" />

        <!--
             First Activity to Open
             SplashScreen
        -->
        <activity android:name=".SplashScreen.SplashScreen">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Pre_Hospitalar.Pre_Hospitalar" />
        <activity android:name=".User_Config.User_Config" />
        <activity android:name=".Pre_Hospitalar.Calculadora_Coma_Glasgow" />
        <activity android:name=".Incendios_Urbanos.CalculadoraAutonomiaARICA" />
        <activity android:name=".Incendios_Urbanos.IncendiosUrbanos" />
        <activity android:name=".Noticias.UI.Feed.RssFeedActivity" />
        <activity android:name=".Noticias.UI.Article.ArticleActivity" />
        <activity android:name=".Materias_Perigosas.MateriasPerigosasActivity" />
        <activity android:name=".Materias_Perigosas.DatabaseHandler.ONU_UI.OnuResultActivity" />
        <activity android:name=".Materias_Perigosas.DatabaseHandler.NAME_UI.NomeResultActivity" />
        <activity android:name=".Materias_Perigosas.DatabaseHandler.Error_UI.ErrorMessageMateriasPerigosas" />
        <activity android:name=".Corpos_de_Bombeiros.CorposBombeirosActivity" />
        <activity android:name=".Corpos_de_Bombeiros.DetailCB.CorposBombeirosDetailActivity" />
        <activity android:name=".Incendios_Florestais.IncendiosFlorestaisActivity" />
        <activity android:name=".Incendios_Florestais.PontosAgua.PontosAguaActivity" />
        <activity android:name=".Incendios_Florestais.PontosAgua.ListaConcelhoActivity" />
        <activity android:name=".Incendios_Florestais.PontosAgua.ListaActivity" />
        <activity android:name=".Incendios_Florestais.PontosAgua.Error_UI.ErrorMessagePontosAguaActivity" />
        <activity android:name=".Incendios_Florestais.PontosAgua.DetailActivity.PontosAguaDetailActivity" />
        <activity android:name=".Incendios_Florestais.FDI.FDIActivity" />
        <activity android:name=".Incendios_Florestais.FDI.FDI_Baixo.FDI_BaixoActivity" />
        <activity android:name=".Incendios_Florestais.FDI.FDI_Moderado.FDI_ModeradoActivity" />
        <activity android:name=".Incendios_Florestais.FDI.FDI_Alto.FDI_AltoActivity" />
        <activity android:name=".Incendios_Florestais.FDI.FDI_Muito_Alto.FDI_Muito_AltoActivity" />
        <activity android:name=".Incendios_Florestais.FDI.FDI_Extremo.FDI_ExtremoActivity" />
        <activity android:name=".Creditos.CreditosActivity" />
        <activity android:name=".Incendios_Urbanos.GlossarioIncendiosUrbanosActivity" />
        <activity android:name=".Materias_Perigosas.Materias_PerigosasMenuActivity" />
        <activity android:name=".Materias_Perigosas.Pictograma.PictogramaDetailActivity" />
        <activity android:name=".Materias_Perigosas.Pictograma.PictogramaActivity"></activity>
    </application>

</manifest>

Can someone help me and try to figure out what's going on?

    
asked by anonymous 05.05.2017 / 16:27

1 answer

1

Android can run on different types of devices. It is present in phones, tablets, televisions and even in cars.

The hardware of each of these devices has different characteristics, which means that the applications are built in order to take them into account if we want them to run in as many types as possible.

To make this goal easier, Android provides a dynamic application development framework that allows the developer to provide features to be used depending on the characteristics of the device, for example different layouts for different screen dimensions or different image sizes for different densities of screens.

On the other hand the application may have hardware requirements that the device can not satisfy, such as sending SMS or having a certain sensor.

It is the developer's responsibility to indicate in AndroidManifest.xml what these requirements are through of the <uses-feature> element and programmatically deal with the fact that they may not be available.

The use of some permissions implicitly require the existence of hardware requirements, making the application incompatible with certain devices.

Google Play only lets you install applications that are compatible with your device.

This filtering is based on the implicit requirements and on < to-explicitly declared.

In your case, by having permission

<uses-permission android:name="android.permission.SEND_SMS" />

implicitly requires that the device be a telephone. It's as stated

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

in AndroidManifest.xml .

In order for your application to be installed on devices other than phones, you must explicitly state that such a requirement is not required, using the android:required

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

References:

06.05.2017 / 16:37