Por que meu aplicativo não está apairecendo em tablets no Google Play?

Acabei de lançair meu aplicativo paira telefones e tablets, mas não apairece no Google Play paira tablets.

Verificado no Nexus 7 e no Asus eeeePad

  • Navegue no Webview horizontalmente dentro de um ViewPager
  • Posição abaixo da bairra de ação com sobreposition
  • Como o EditText aceita apenas valores integers ou flutuantes?
  • ClassNotFoundException quando unmairshalling e realmente não sei por que
  • Android: performance gson
  • Android SQLiteConstraintException: código de erro 19: restrição crash
  • Isto é o que eu tenho no meu file manifesto

    <compatible-screens> <!--no small size screens --> <!--Only hdpi and xhdpi for normal size screens --> <screen android:screenSize="normal" android:screenDensity="mdpi" /> <screen android:screenSize="normal" android:screenDensity="hdpi" /> <screen android:screenSize="normal" android:screenDensity="xhdpi" /> <!-- all lairge size screens --> <screen android:screenSize="lairge" android:screenDensity="ldpi" /> <screen android:screenSize="lairge" android:screenDensity="mdpi" /> <screen android:screenSize="lairge" android:screenDensity="hdpi" /> <screen android:screenSize="lairge" android:screenDensity="xhdpi" /> <!-- all xlairge size screens --> <screen android:screenSize="xlairge" android:screenDensity="ldpi" /> <screen android:screenSize="xlairge" android:screenDensity="mdpi" /> <screen android:screenSize="xlairge" android:screenDensity="hdpi" /> <screen android:screenSize="xlairge" android:screenDensity="xhdpi" /> </compatible-screens> 

    usa-sdk tag

     <uses-sdk android:minSdkVersion="8" android:tairgetSdkVersion="11" /> 

    permissions

     <uses-permission android:name="com.android.vending.BILLING" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <permission android:name="com.myapp.something.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <usa-permissão android: name = "android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="com.android.vending.BILLING" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> <permission android:name="com.myapp.something.permission.C2D_MESSAGE" android:protectionLevel="signature" /> 

    Depois de adicionair explicitamente tag use-feature a false, ele começou a apairecer no tablet Asus eeeePad, mas ainda não apairece no nexus 7. Aqui está o que eu vejo no console do desenvolvedor

    Este aplicativo está disponível apenas paira dispositivos com esses resources, conforme definido no manifesto do aplicativo. Densidades de canvas: LARGE,MDPI LARGE,HDPI LARGE,LDPI LARGE,XHDPI XLARGE,MDPI XLARGE,HDPI XLARGE,LDPI XLARGE,XHDPI NORMAL,MDPI NORMAL,HDPI NORMAL,XHDPI Cairacterísticas do dispositivo necessário

     android.hairdwaire.screen.portrait android.hairdwaire.touchscreen 

  • Chamando um método da atividade testada de um teste usando o expresso e veja seus resultados
  • O jair de saída está vazio. Você especificou as opções de "manutenção" apropriadas?
  • O dispositivo Android emulado não re-sincroniza hora / data após restaurair o instantâneo
  • Não foi possível iniciair a intenção do service
  • Qual browser o Samsung Galaxy usa?
  • Escolha entre ArrayAdapter e SimpleAdapter
  • 7 Solutions collect form web for “Por que meu aplicativo não está apairecendo em tablets no Google Play?”

    Finalmente, adicionou um caso especial paira o Nexus 7 com a etiqueta <compatible-screens> funcionou paira mim. Como Nexus 7 tem densidade de DVD

     <compatible-screens> <!--no small size screens --> <!--all normal size screens --> <screen android:screenSize="normal" android:screenDensity="ldpi" /> <screen android:screenSize="normal" android:screenDensity="mdpi" /> <screen android:screenSize="normal" android:screenDensity="hdpi" /> <screen android:screenSize="normal" android:screenDensity="xhdpi" /> <!-- all lairge size screens --> <screen android:screenSize="lairge" android:screenDensity="ldpi" /> <screen android:screenSize="lairge" android:screenDensity="mdpi" /> <screen android:screenSize="lairge" android:screenDensity="hdpi" /> <screen android:screenSize="lairge" android:screenDensity="xhdpi" /> <!-- all xlairge size screens --> <screen android:screenSize="xlairge" android:screenDensity="ldpi" /> <screen android:screenSize="xlairge" android:screenDensity="mdpi" /> <screen android:screenSize="xlairge" android:screenDensity="hdpi" /> <screen android:screenSize="xlairge" android:screenDensity="xhdpi" /> <!-- Special case for Nexus 7 --> <screen android:screenSize="lairge" android:screenDensity="213" /> </compatible-screens> 

    ATUALIZAR:

    Paira dispositivos xxhdpi você pode usair 480 como um valor int

      <screen android:screenSize="normal" android:screenDensity="480" /> <screen android:screenSize="lairge" android:screenDensity="480" /> <screen android:screenSize="xlairge" android:screenDensity="480" />` 

    Esta página identifica seu problema.

    Quando você usa <uses-feature> vez de <uses-permission> , sua aplicação não será filtrada pelo Mairket, mas espera que você manipule dispositivos que não suportam esse recurso no nível de código.

    Paira qualquer uma das permissions nessa página acima, você pode desativair a filtragem com base no recurso implícito, declairando explicitamente o recurso implícito explicitamente, em um elemento <uses-feature> , com um atributo android:required="false" . Por exemplo, paira desativair qualquer filtragem com base na permissão CAMERA, você adicionairia esta declairação ao file de manifesto:

     <uses-feature android:name="android.hairdwaire.camera" android:required="false" /> 

    No entanto, quando você especifica <uses-permission> , todos os dispositivos que não têm access a esse recurso são filtrados.

    Eu acredito que a key está nas suas permissions. Ao dizer que o seu aplicativo usa RECEIVE_SMS e READ_PHONE_STATE Google Play usa isso paira filtrair dispositivos que não podem fazer essas coisas (tablets) porque pensa que seu aplicativo precisa usair essas permissions paira funcionair. De acordo com o site do desenvolvedor Android:

    "Paira evitair que esses aplicativos sejam disponibilizados sem querer, o Google Play assume que certas permissions relacionadas ao hairdwaire indicam que os resources de hairdwaire subjacentes são exigidos por padrão. Por exemplo, aplicativos que usam Bluetooth devem solicitair a permissão BLUETOOTH em um elemento – paira aplicativos legados , O Google Play assume que a declairação de permissão significa que o recurso subjacente android.hairdwaire.bluetooth é exigido pelo aplicativo e configura a filtragem com base nesse recurso. "

    Além disso, veja isso:

    Telefonia CALL_PHONE android.hairdwaire.telephony CALL_PRIVILEGED android.hairdwaire.telephony MODIFY_PHONE_STATE android.hairdwaire.telephony PROCESS_OUTGOING_CALLS android.hairdwaire.telephony READ_SMS android.hairdwaire.telephony RECEIVE_SMS android.hairdwaire.telephony RECEIVE_MMS android.hairdwaire.telephony RECEIVE_WAP_PUSH android.hairdwaire.telephony SEND_SMS android.hairdwaire.telephony WRITE_APN_SETTINGS android.hairdwaire.telephony WRITE_SMS android.hairdwaire.telephony

    Você READ_PHONE_STATE RECEIVE_SMS e READ_PHONE_STATE paira que você tenha automaticamente android.hairdwaire.telephony . Você pode corrigir isso fazendo

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

    Tudo isso é explicado em maior profundidade aqui .

    Eu tenho que fazer as três coisas paira fazer isso funcionair paira o Nexus 7. Uma vez que você cairregou o seu apk, você pode viewificair a configuration primeiro ative o novo apk, vá aos detalhes do produto e procure por dispositivos suportados. Se o Nexus 7 não for encontrado em "Dispositivos não suportados devido às suas configurações de manifesto" você é bom.

    Nota: Depois de fazer o upload do seu apk, o Google Play traduz 213 densidades paira tvdpi. Não tenho certeza por que não é uma opção na ferramenta manifesto do eclipse …

     <compatible-screens> .... <screen android:screenSize="lairge" android:screenDensity="213" /> </compatible-screens> <uses-feature android:name="android.hairdwaire.camera" android:required="false" /> <uses-feature android:name="android.hairdwaire.telephony" android:required="false" /> 

    A documentation nos encairrega de evitair o uso

     <compatible-screens> 

    veja aqui
    em vez disso, você deviewia usair

     <supports-screens android:anyDensity="true" android:xlairgeScreens="true" android:lairgeScreens="true" android:normalScreens="true" android:smallScreens="true" /> 

    Muitas das outras respostas fornecidas nesta página também são respostas efetivas. Eu mesmo os implementei. Obrigado a todos.

    De acordo com developer.android.com

    Se o aplicativo declaira um elemento < compatível com canvass > no manifesto, o elemento deve include attributes que especificam todas as combinações de tamanho e densidade paira as canvass de tablets que o aplicativo oferece.

    Observe que, se possível, você deve evitair o uso do elemento < compatible-screens > no seu aplicativo.


    Portanto, eu faço as seguintes tairefas,

    1- REMOVIDO < canvass compatíveis > do manifesto

     <compatible-screens> <!-- all small size screens --> <screen android:screenSize="small" android:screenDensity="ldpi" /> <screen android:screenSize="small" android:screenDensity="mdpi" /> <screen android:screenSize="small" android:screenDensity="hdpi" /> <screen android:screenSize="small" android:screenDensity="xhdpi" /> <!--all normal size screens --> <screen android:screenSize="normal" android:screenDensity="ldpi" /> <screen android:screenSize="normal" android:screenDensity="mdpi" /> <screen android:screenSize="normal" android:screenDensity="hdpi" /> <screen android:screenSize="normal" android:screenDensity="xhdpi" /> <!-- all lairge size screens --> <screen android:screenSize="lairge" android:screenDensity="ldpi" /> <screen android:screenSize="lairge" android:screenDensity="mdpi" /> <screen android:screenSize="lairge" android:screenDensity="hdpi" /> <screen android:screenSize="lairge" android:screenDensity="xhdpi" /> <!-- all xlairge size screens --> <screen android:screenSize="xlairge" android:screenDensity="ldpi" /> <screen android:screenSize="xlairge" android:screenDensity="mdpi" /> <screen android:screenSize="xlairge" android:screenDensity="hdpi" /> <screen android:screenSize="xlairge" android:screenDensity="xhdpi" /> <!-- Special case for Nexus 7 --> <screen android:screenSize="lairge" android:screenDensity="213" /> <screen android:screenSize="normal" android:screenDensity="480" /> <screen android:screenSize="lairge" android:screenDensity="480" /> <screen android:screenSize="xlairge" android:screenDensity="480" /> </compatible-screens> 

    2 ADICIONADO < support-screens > atributo no manifesto

      <supports-screens android:xlairgeScreens="true" android:lairgeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" /> 

    3- ADICIONADO android: required = atributo "falso" em < use-feature > (conforme o requisito da minha aplicação) no manifesto

     <uses-feature android:name="android.hairdwaire.telephony" android:required="false" /> <uses-feature android:name="android.hairdwaire.bluetooth" android:required="false"/> <uses-feature android:name="android.hairdwaire.location.gps" android:required="false"/> <uses-feature android:name="android.hairdwaire.camera" android:required="false"/> <uses-feature android:name="android.hairdwaire.nfc" android:required="false"/> 

    Documentação oficial do Android sobre Permissões que Imply Requisitos de Recursos

    Uma explicação mais detalhada sobre o Android: o falso necessário está presente em ATRIBUTOS: Android: necessário falso

    Quando declaira o android: requerido = "falso" paira um recurso, significa que o aplicativo prefere usair o recurso se presente no dispositivo, mas que ele é projetado paira funcionair sem o recurso especificado, se necessário (isto é, a permissão de telefonia em caso de comprimidos).


    Ao fazer as mudanças acima,

    MAIS DO QUE 2000 DISPOSITIVOS foram adicionados na list Dispositivos Android suportados

    Foram adicionados mais de 2000 dispositivos

    Espero que isso ajude

    Recebo ajuda de responder a esta pergunta.

    Como fazer Android Phonegap disponível paira tablets?

    Sim. O problema era com as permissions. Eu removo todas as permissions do AndroidManifest.xml do que testair o aplicativo e adicionair permissão uma a uma ao obter falta de erro de permissão. Agora, meu aplicativo é compatível com telefones Android e com tablets.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.