Android Tablet Incompatible App (Playstore Info)

Asked

Viewed 352 times

2

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

I looked at the list of compatible devices with my app that google play store discloses and dozens of tablet’s are compatible...

Why is this particular model not compatible? The android version is compatible 6.0.1, will it be by screen resolution? 9.7'' 1536 x 2048 pixels (~264 ppi pixel Density), however I have 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>

Someone can help me and try to figure out what’s going on?

  • I looked more closely at the compatible devices, and I think the compatibility problem will be in the use of phone functionality, in this case SMS. Is there a possibility that I can also use in tablet’s without sim card? disabling in this case the functionality? If yes, how can I do?

  • If I use <uses-Feature android:name="android.hardware.Telephony" android:required="false" > </uses-Feature> will there be any recurring future problems? Inside the app there will be no problem, because I have the condition that checks if you have SIM card or not in the SMS filling feature

  • Some permissions hardware-related features imply that the underlying hardware features are mandatory by default. So you must use <uses-feature android:name="android.hardware.telephony" android:required="false" > so that the app can be installed on devices other than phones.

1 answer

1

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

The hardware of each of these devices has different characteristics, which requires that applications be built in such a way as to take them into account if we want them to run in as many types as possible.

To facilitate this goal, Android provides a framework dynamic application development that allows the programmer to provide resources to be used according to the characteristics of the device, for example different layouts for different screen dimensions or different image sizes for different screen densities.

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

It is the responsibility of the programmer to indicate, no Androidmanifest.xml, what these requirements are through of the element <uses-feature> and programmatically deal with the fact that they may not be available.

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

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

This filtering is based on the requirements implicit and us explicitly declared.

In your case, because you have the permission

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

implicitly requires the device to be a phone. It is as if you have declared

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

in the Androidmanifest.xml.

In order for your application to be installed on devices other than telephones you must explicitly indicate that such a requirement is not necessary by using the attribute android:required

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

References:

Browser other questions tagged

You are not signed in. Login or sign up in order to post.