Ok so I have my android manifest:
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="" android:versionCode="6" android:versionName="1.2.3">
<uses-sdk android:minSdkVersion="7"/>
<application android:label="" android:icon="#drawable/icon" android:debuggable="true">
<activity android:name="com.google.ads.AdActivity" android:screenOrientation="landscape" android:configChanges="keyboard|keyboardHidden|orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.READ_INPUT_STATE"/>
<uses-permission android:name="android.permission.SET_ORIENTATION"/>
</manifest>
Where do I put in this:
<supports-screens android:smallScreens="false" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true" />
and is this the correct syntax to not show the application to people with fail phones on the market? I just want to show my app to people with a decent dpi screen as i guess it helps determine how fast their processor is, how much ram they might have etc.
Cheers guys!
I think it places on Just before "application" tag
It must be a manifest child.
http://developer.android.com/guide/topics/manifest/supports-screens-element.html
http://developer.android.com/resources/samples/ApiDemos/AndroidManifest.html
see the supportScreens section.
Related
I want to publish my app on Google Play but when I upload my .apk file, it shows that it is supported by 0 devices. I know that there is already a few topics about this but I have not find solution in any of them. Below I am attaching source-code of my android manifest. I also would like to mention that I am using LibGDX for this application and it is an Android Live Wallpaper. Also everything works fine on test devices and emulator. Thanks for your answers.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.caller.generationslwp.android"
android:versionCode="1"
android:versionName="1.0.1" >
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="21" />
<uses-feature android:name ="android:software.live_wallpaper" android:required="true"></uses-feature>
<uses-feature android:glEsVersion="0x00020000" android:required="true"></uses-feature>
<uses-feature android:name="android.hardware.touchscreen" android:required="true"></uses-feature>
<supports-screens android:resizeable="true"
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"
/>
<application
android:allowBackup="false"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
>
<service android:name =".LiveWallpaperAndroid"
android:label = "#string/app_name"
android:icon = "#drawable/ic_launcher"
android:permission = "android.permission.BIND_WALLPAPER" >
<intent-filter>
<action android:name="android.service.wallpaper.WallpaperService" />
</intent-filter>
<meta-data android:name ="android.service.wallpaper"
android:resource ="#xml/livewallpaper" />
</service>
<activity
android:name="com.caller.generationslwp.android.Settings"
android:exported="true"
android:label="#string/preview_app_name">
</activity>
</application>
</manifest
>
I finally found where the problem was. It was a typo android:software.live_wallpaper, it should be android.software.live_wallpaper. Now it shows over 9 000 supported devices.
When viewing my app in Google Play on my ASUS Transformer tablet I see the following message
Your device isn't compatible with this version
Here is my manifest file.
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true"
android:versionCode="3"
android:versionName="1.0.2"
android:windowSoftInputMode="adjustPan"
package="com.sheffieldlentinepc.sentenceestimator"
xmlns:android="http://schemas.android.com/apk/res/android">
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<uses-permission android:name="android.permission.INTERNET" />
<!-- Required permission to check licensing. -->
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="18" />
<application
android:hardwareAccelerated="true"
android:icon="#drawable/icon"
android:label="#string/app_name">
<activity
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
android:label="#string/app_name"
android:name="SentenceEstimator"
android:theme="#android:style/Theme.Black.NoTitleBar"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Is there anything in my manifest that would cause this device to be incompatible?
OK I got it! My situation:
Originally a phone only app
re-designed for tablet optimization
I thought marking this permission to required="false" was all I needed since tablets don't have phones. <uses-permission android:name="android.permission.CALL_PHONE"
**android:required="false"** />
My confusion was the <uses-permission/> and <uses-feature/> after reading this over for the 10th time I finally caught it. http://developer.android.com/distribute/googleplay/quality/tablet.html#hardware-requirements
I needed to explicitly add <uses-feature android:name="android.hardware.telephony" android:required="false" /> to my manifest.
upload to to developer console and you should see the number of "supported devices" jump, 541 devices in my case.
Of course if you have features that require phone use you need to handle it appropriately at run-time for devices that don't have phone.
Adding <uses-feature android:name="android.hardware.telephony" android:required="false" /> to the manifest added support for your AsusTransformer TF101G too!
I hope this helps someone else!
I have published an application on Google Play. All is ok when I install on my Galaxy S3 or any other phone. But when I want to install this app on my Nexus 7, I can't find it on Google Play.
Here is my manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="XX.XX.XX"
android:versionCode="3"
android:versionName="1.1" >
<supports-screens android:largeScreens="true"
android:smallScreens="true"
android:anyDensity="true"
android:xlargeScreens="true"
android:normalScreens="true"/>
<uses-sdk
android:minSdkVersion="13"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.CALL_PHONE" android:required="false"></uses-permission>
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity android:name="splash"
android:theme="#android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:theme="#android:style/Theme.Holo.Light.NoActionBar"
android:name="XX.XX.XX.MainActivity">
</activity>
<activity android:name="vocation" android:theme="#android:style/Theme.Holo.Light"></activity>
<activity android:name="XX" android:theme="#android:style/Theme.Holo.Light"></activity>
<activity android:name="XX" android:theme="#android:style/Theme.Holo.Light"></activity>
<activity android:name="XXX" android:theme="#android:style/Theme.Holo.Light"></activity>
</application>
Anyone have an idea ?
Thanks a lot
update the uses-permission line:
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
add uses-feature:
<uses-feature android:name="android.hardware.telephony" android:required="false" />
My guess is that the following permission prevents if from being available for the Nexus 7:
<uses-permission android:name="android.permission.CALL_PHONE" android:required="false"></uses-permission>
The Nexus 7 doesn't have phone capabilities and so it won't be supported. The android:required attribute isn't needed by the way and doesn't do anything (it's ignored by Android).
you must use compatible-screens tag and not supports-screens
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.onsite"
android:versionCode="1"
android:versionName="#string/app_version" >
<uses-sdk android:minSdkVersion="8" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" >
</supports-screens>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<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_WIFI_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<application
android:icon="#drawable/icon"
android:label="#string/app_name"
android:name="MainApplication" >
<uses-library android:name="com.google.android.maps" />
<activity
android:label="#string/app_name"
android:name=".Startup"
android:theme="#style/SVSSplashTheme"
android:windowSoftInputMode="stateHidden" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
This is my manifest. If I remove <uses-library android:name="com.google.android.maps" /> I can install export APK and install it in the device but my android map Activity crashing. If I add this line I can't install APK. I am not getting the Application installed.
Can anyone tell me what I am doing wrong? Thanks in advance.
Only a guess without seeing the logcat, but probably you are trying to install onto a device which lacks the libraries implementing the maps api.
If this is a physical device you are out of luck - your vendor did not license this proprietary component from Google. (you could check how supported open street map is on Android?)
If it is the emulator, you need to switch to an AVD based on one of the "Google APIs" images.
Please check your consol if it is giving the error like,missing shared library,then launch a new emulator with android Google API 2.2 or whatever OS you are using,then your map application work perfectly.
I had developed an application with the following manifest.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.Test"
android:versionCode="1111"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="7" android:maxSdkVersion="10"/>
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="false"
android:resizeable="true"
android:anyDensity="true">
</supports-screens>
<application android:icon="#drawable/app_icon"
android:label="#string/KEY_app_name"
android:theme="#android:style/Theme.NoTitleBar">
<activity android:name=".SplashScreenActivity"
android:label="#string/KEY_app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
& default.properties set to target=android-8
The concern is that when I deploy the application on android market, by default it displays support to x-large screens as true what should not happen. I tried setting the x-large screen support to false but it is not supported here. Could you please let me know that how can i set support to x-large screen as false without loosing the support for devices set to lower versions like 2.1 etc.
Any help in this regard will be highly appreciated.
Thanks & looking forward to read from you very soon.
Try this:
< supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true">
< /supports-screens>
and rest will remain unchanged in Manifest File.