How do I change Manifest.xml to indicate app is for tablets also?

I’m getting the dreaded “Designed for phones” label in the google store. my clients are not happy with that…

will someone please share how would I use meta-data or whatever method to change the Android Manifest.xml file so my app can include: 

<supports-screens

    android:largeScreens=“true”

android:xlargeScreens=“true”

    />

where would I place code like in the API Guides example: 

<meta-data android:name=“string

           android:resource=“resource specification

           android:value=“string” />    

 

I have had no success with the apk manager app. it throws errors when I try to open it in Maverick iOS.

 

THANKS!!!

Mike Kelly

Have you read this thread?

http://forums.coronalabs.com/topic/16243-differentiating-between-a-small-or-a-large-screen-with-similar-screen-resolution/

Rob

I just did. thanks…

however, I already have this in my build settings:

 usesFeatures =

        {

        { name = “android.hardware.camera”, required = true },

        { name = “android.hardware.microphone”, required = true },

        { name = “android.hardware.location”, required = false },

            { name = “android.hardware.location.gps”, required = false },

         supportsScreens =

                {

                        smallScreens = true,

                        normalScreens = true,

                        largeScreens = true,

                        xlargelScreens = true,

                },

I’ve not tried this but I think that supportsScreens should be a peer to usesFeatures not a child of.  I think you’ve got a misplaced brace:

        usesFeatures =

        {

                { name = “android.hardware.camera”, required = true },

                { name = “android.hardware.microphone”, required = true },

                { name = “android.hardware.location”, required = false },

                { name = “android.hardware.location.gps”, required = false },

        },

        supportsScreens =

        {

                        smallScreens = true,

                        normalScreens = true,

                        largeScreens = true,

                        xlargelScreens = true,

        },

or something like that.  Did you see last weeks tutorial on understanding build.settings?

Rob

no, I missed it. I’ll look for it… in the meantime, I added the }, as you had in place and got rid of one of the braces I had after that and got this error when I tried to build it:

A device build error occurred on the server. 

BuildID: 53c764b36d838 

Error: 

anyway this is the whole of my current build settings:

settings =

{

     orientation =

        {

                default = “portrait”,

                supported =

                {

                       “portrait”, “portraitUpsideDown”,

                },

        },

        android =

    {

        versionCode = “2200”,

        usesExpansionFile = true,

        largeHeap = true,

        usesPermissions =

        {

        “android.permission.INTERNET”,

        “com.android.vending.CHECK_LICENSE”,

        “android.permission.WRITE_EXTERNAL_STORAGE”,

        “android.permission.VIBRATE”,

        “android.permission.CLEAR_APP_USER_DATA”,

        “android.permission.CAMERA”,

        “android.permission.GET_TASKS”,

        “android.permission.ACCESS_COARSE_LOCATION”,

        “android.permission.INTERNAL_SYSTEM_WINDOW”,

        “android.permission.MODIFY_AUDIO_SETTINGS”,

        “android.permission.INSTALL_PACKAGES”,

        “android.permission.READ_EXTERNAL_STORAGE”,

        “android.permission.READ_FRAME_BUFFER”,

        “android.permission.RECORD_AUDIO”,

        “android.permission.SET_PROCESS_LIMIT”

        

}, 

        usesFeatures =

        {

        { name = “android.hardware.camera”, required = true },

        { name = “android.hardware.microphone”, required = true },

        { name = “android.hardware.location”, required = false },

            { name = “android.hardware.location.gps”, required = false },

            },

         supportsScreens =

                {

                        smallScreens = true,

                        normalScreens = true,

                        largeScreens = true,

                        xlargelScreens = true,

                },

    },

}

thanks for looking at this!

no errors; waiting to se if change occurs:

settings =

{

orientation =

{

default = “portrait”,

supported = { “portrait”, “portraitUpsideDown” }

},

        android =

        {

        supportsScreens =

      {

         resizeable = true,

         smallScreens = true,

         normalScreens = true,

         largeScreens = true,

         xlargeScreens = true,

      },

        versionCode = “2400”,

        usesExpansionFile = true,

        largeHeap = true,

        usesPermissions =

        {

        “android.permission.INTERNET”,

        “com.android.vending.CHECK_LICENSE”,

        “android.permission.WRITE_EXTERNAL_STORAGE”,

        “android.permission.VIBRATE”,

        “android.permission.CLEAR_APP_USER_DATA”,

        “android.permission.CAMERA”,

        “android.permission.GET_TASKS”,

        “android.permission.ACCESS_COARSE_LOCATION”,

        “android.permission.INTERNAL_SYSTEM_WINDOW”,

        “android.permission.MODIFY_AUDIO_SETTINGS”,

        “android.permission.INSTALL_PACKAGES”,

        “android.permission.READ_EXTERNAL_STORAGE”,

        “android.permission.READ_FRAME_BUFFER”,

        “android.permission.RECORD_AUDIO”,

        “android.permission.SET_PROCESS_LIMIT”,

        },  

        usesFeatures =

        {

        { name = “android.hardware.camera”, required = true },

        { name = “android.hardware.microphone”, required = true },

        { name = “android.hardware.location”, required = false },

            { name = “android.hardware.location.gps”, required = false },

            },        

    },

}

Are you still getting a build error?

Can you post a screen shot of your build screen just before you hit the build button?

Are there any additional information in the console log?

Rob

no errors anymore, but Google Play still says my app is for phones although I’ve broken supportScreens away.  

http://www.onestopdesktop.com/Screen_Shot.png

thanks!

in case it helps, when I unzip the .apk, the Manifest.xml contains near the beginning:

versionCode

versionNameinstallLocation

minSdkVersiontargetSdkVersionname

glEsVersionrequired

largeScreens

smallScreens

xlargeScreens

resizeable

normalScreensiconlabel

later it also contains:

android.hardware.screen.portrait!android.hardware.screen.landscapesupports-screens

applicationGive Me 5!!! Multiplayer

I was finally able to get APK manager to work. opened AndroidManifest.xml, and this was there:

<supports-screens android:largeScreens=“true” android:normalScreens=“true” android:resizeable=“true” android:smallScreens=“true” android:xlargeScreens=“true”/>

 

yet Google Play is still saying app is for phones???

Have you read this? http://developer.android.com/guide/practices/screens-distribution.html

You don’t seem to be setting small-screens to false.  It probably defaults to true.  The example also includes a minimum pixel width setting as well.

Rob

yes, I have. it says: “The catch is that you must compile your application against Android 3.2 or higher in order to use the requiresSmallestWidthDp attribute.”    Corona targets down to 2.3.3.

I also saw that it said resizable was deprecated so I’m getting rid of that. 

I’m going to set small and normal screens to false like you said. I just found out how small they actually are:

  • normal screens are at least 470dp x 320dp
  • small screens are at least 426dp x 320dp

I’ll update after next download. thanks!!

new manifest

 <supports-screens android:largeScreens=“true” android:normalScreens=“false” android:requiresSmallestWidthDp=“480” android:smallScreens=“false” android:xlargeScreens=“true”/>

 

it still says for phones, and now my Motorola Droid X can’t open it. the Droid has a 480 pixel wide screen but it’s running 2.6 so it can’t read the smallest screen stuff.

what settings do I need to have it show up on pads and larger phones but not say it’s exclusive to phones? I would think by turning the largeScreens/xLargeScreens to true that would be sufficient to get rid of the phone only message.

thanks!

I took off all screen size descriptions; the number of devices increased to over 5K, but it still says it’s only for phones.

Have you read this thread?

http://forums.coronalabs.com/topic/16243-differentiating-between-a-small-or-a-large-screen-with-similar-screen-resolution/

Rob

I just did. thanks…

however, I already have this in my build settings:

 usesFeatures =

        {

        { name = “android.hardware.camera”, required = true },

        { name = “android.hardware.microphone”, required = true },

        { name = “android.hardware.location”, required = false },

            { name = “android.hardware.location.gps”, required = false },

         supportsScreens =

                {

                        smallScreens = true,

                        normalScreens = true,

                        largeScreens = true,

                        xlargelScreens = true,

                },

I’ve not tried this but I think that supportsScreens should be a peer to usesFeatures not a child of.  I think you’ve got a misplaced brace:

        usesFeatures =

        {

                { name = “android.hardware.camera”, required = true },

                { name = “android.hardware.microphone”, required = true },

                { name = “android.hardware.location”, required = false },

                { name = “android.hardware.location.gps”, required = false },

        },

        supportsScreens =

        {

                        smallScreens = true,

                        normalScreens = true,

                        largeScreens = true,

                        xlargelScreens = true,

        },

or something like that.  Did you see last weeks tutorial on understanding build.settings?

Rob

no, I missed it. I’ll look for it… in the meantime, I added the }, as you had in place and got rid of one of the braces I had after that and got this error when I tried to build it:

A device build error occurred on the server. 

BuildID: 53c764b36d838 

Error: 

anyway this is the whole of my current build settings:

settings =

{

     orientation =

        {

                default = “portrait”,

                supported =

                {

                       “portrait”, “portraitUpsideDown”,

                },

        },

        android =

    {

        versionCode = “2200”,

        usesExpansionFile = true,

        largeHeap = true,

        usesPermissions =

        {

        “android.permission.INTERNET”,

        “com.android.vending.CHECK_LICENSE”,

        “android.permission.WRITE_EXTERNAL_STORAGE”,

        “android.permission.VIBRATE”,

        “android.permission.CLEAR_APP_USER_DATA”,

        “android.permission.CAMERA”,

        “android.permission.GET_TASKS”,

        “android.permission.ACCESS_COARSE_LOCATION”,

        “android.permission.INTERNAL_SYSTEM_WINDOW”,

        “android.permission.MODIFY_AUDIO_SETTINGS”,

        “android.permission.INSTALL_PACKAGES”,

        “android.permission.READ_EXTERNAL_STORAGE”,

        “android.permission.READ_FRAME_BUFFER”,

        “android.permission.RECORD_AUDIO”,

        “android.permission.SET_PROCESS_LIMIT”

        

}, 

        usesFeatures =

        {

        { name = “android.hardware.camera”, required = true },

        { name = “android.hardware.microphone”, required = true },

        { name = “android.hardware.location”, required = false },

            { name = “android.hardware.location.gps”, required = false },

            },

         supportsScreens =

                {

                        smallScreens = true,

                        normalScreens = true,

                        largeScreens = true,

                        xlargelScreens = true,

                },

    },

}

thanks for looking at this!

no errors; waiting to se if change occurs:

settings =

{

orientation =

{

default = “portrait”,

supported = { “portrait”, “portraitUpsideDown” }

},

        android =

        {

        supportsScreens =

      {

         resizeable = true,

         smallScreens = true,

         normalScreens = true,

         largeScreens = true,

         xlargeScreens = true,

      },

        versionCode = “2400”,

        usesExpansionFile = true,

        largeHeap = true,

        usesPermissions =

        {

        “android.permission.INTERNET”,

        “com.android.vending.CHECK_LICENSE”,

        “android.permission.WRITE_EXTERNAL_STORAGE”,

        “android.permission.VIBRATE”,

        “android.permission.CLEAR_APP_USER_DATA”,

        “android.permission.CAMERA”,

        “android.permission.GET_TASKS”,

        “android.permission.ACCESS_COARSE_LOCATION”,

        “android.permission.INTERNAL_SYSTEM_WINDOW”,

        “android.permission.MODIFY_AUDIO_SETTINGS”,

        “android.permission.INSTALL_PACKAGES”,

        “android.permission.READ_EXTERNAL_STORAGE”,

        “android.permission.READ_FRAME_BUFFER”,

        “android.permission.RECORD_AUDIO”,

        “android.permission.SET_PROCESS_LIMIT”,

        },  

        usesFeatures =

        {

        { name = “android.hardware.camera”, required = true },

        { name = “android.hardware.microphone”, required = true },

        { name = “android.hardware.location”, required = false },

            { name = “android.hardware.location.gps”, required = false },

            },        

    },

}

Are you still getting a build error?

Can you post a screen shot of your build screen just before you hit the build button?

Are there any additional information in the console log?

Rob