1

My App manifest is as described below. I've mentioned all the required flag to false below..

FYI : I've added permission for Amazon maps as its Universal between Amazon and Play store.
Current application is having 337 Unsupported Devices on Market. Some of them are


Samsungolleh– ik1
SamsungGalaxy– gt-i7500
SamsungHomesync– spcwifi
SamsungMoment– sph-m900
SamsungGT-I5800L– GT-I5800L
SamsungMoment– SPH-M900
SamsungBehold II– sgh-t939
SamsungGalaxy Star– mintss
SamsungGalaxy Player 50– YP-G50
SamsungEuropa– GT-I5500M
SamsungGalaxy 070– hendrix
SamsungGalaxy Star– mint
SamsungBehold II– SGH_T939
SamsungSpica– spica
SamsungGalaxy Spica

and many others..


Am I missing anything in AndroidManifest.xml ?


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:amazon="http://schemas.amazon.com/apk/res/android"
    package="com.vishal"
    android:versionCode="35"
    android:versionName="3.2.1" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="10" />

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:xlargeScreens="true" />

<!-- GOOGLE MAP API V2 -->
<permission
    android:name="com.vishal.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.vishal.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />
<!-- GOOGLE MAP API V2 -->

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- To Get GPS Location -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- To Get GPS Location -->

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

<!-- To Call Salon -->
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-feature
    android:name="android.hardware.telephony"
    android:required="false" />
<!-- To Call Salon -->


<!-- To Capture from Camera -->
<uses-permission android:name="android.permission.CAMERA" />

<uses-feature
    android:name="android.hardware.camera"
    android:required="false" />
<uses-feature
    android:name="android.hardware.camera.autofocus"
    android:required="false" />
<uses-feature
    android:name="android.hardware.camera.flash"
    android:required="false" />
<!-- To Capture from Camera -->


<!-- PUSH NOTIFICATION PERMISSIONS -->    
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission
    android:name="com.vishal.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.vishal.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- PUSH NOTIFICATION PERMISSIONS -->

<!-- CALENDAR PERMISSIONS -->
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />

<application
    android:name="TestApplication"
    android:debuggable="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="KEY DESCRIBED HERE" />

    <!--
        All Activity Tags are mentioned here
    -->

    <amazon:enable-feature
        android:name="com.amazon.geo.maps"
        android:required="false" />

    <receiver
        android:name="com.google.android.gcm.GCMBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <!-- Receives the actual messages. -->
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <!-- Receives the registration id. -->
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="com.vishal" />
        </intent-filter>
    </receiver>       
    <service android:name=".GCMIntentService" />
</application>

Vishal Khakhkhar
  • 2,106
  • 3
  • 29
  • 60
  • try with android:targetSdkVersion="17" http://stackoverflow.com/questions/17673640/android-my-app-is-not-supporting-galxy-s-4/17738629#17738629 – T_V Jul 24 '13 at 07:19
  • Looks to all very old phones which probably just are below API 8 – Stefan de Bruijn Jul 24 '13 at 07:23
  • What's the actual problem, a certain device is not supported on the PlayStore - if yes, then which one? You're limiting the API's on the phones between 8 and 10 - that's very few of the total. – g00dy Jul 24 '13 at 07:23
  • @g00dy still its supporting S4 and S3.. so that might not be the case – Vishal Khakhkhar Jul 24 '13 at 07:25
  • @Vishal Khakhkhar - yes, but the minimum is set to 8, if a device is below that, there's no way that you can support it. Put the minSDK to "5" and see if your code is compatible with that. – g00dy Jul 24 '13 at 07:29
  • @g00dy yes accept it'll not support below 8.. but target 10 should not restrict above or equal 10. – Vishal Khakhkhar Jul 24 '13 at 07:31
  • @Vishal Khakhkhar - Agreed, I meant to write 8 to 17, but the "edit" dissapeared by that time. Check the not supported device's API level by default and see if it's outside the minSDK ="8" – g00dy Jul 24 '13 at 07:37

1 Answers1

1

this can be various causes but a quick research it can be the minimum required API level. For instance I did a search on the following phone:

http://www.gsmarena.com/samsung_i5700_galaxy_spica-2965.php

This has max 2.1 that is API 7 and not 8. It can also be a combination of permissions. So clear all not needed permissions etc... To target all devices compatibility can be very difficult to achieve.

QVDev
  • 1,093
  • 10
  • 17