I have Samsung galaxy s4 mini and screen size is 540 x 960 pixels, 4.3 inches (~256 ppi pixel density).
My app work perfectly in all devices accept galaxy s4 mini, galaxy s4, galaxy s5.
I have visited this link an try it but it doesn't affect in device. Link is below
Android App is not compatible with Samsung galaxy S4
Any solution exist then please suggest me.
My AndroidManifest.xml file Code:
`
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature
android:name="android.hardware.bluetooth_le"
android:required="true" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="false" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name="com.utils.Constant"
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:killAfterRestore="false"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="Video"
android:configChanges="orientation"
android:screenOrientation="portrait" >
</activity>
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="#string/facebook_app_id" />
<activity
android:name="com.facebook.LoginActivity"
android:configChanges="orientation"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="Result"
android:configChanges="orientation"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="Login"
android:configChanges="orientation"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.beaconrangingservice.BeaconRangingService"
android:enabled="true" />
<activity
android:name="Home"
android:configChanges="orientation"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="Infopage"
android:configChanges="orientation"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="BeaconFoundPage"
android:configChanges="orientation"
android:screenOrientation="portrait" >
</activity>
<!--
<service android:name=".EstimoteService" />
<service
android:name="com.estimote.sdk.service.BeaconService"
android:exported="false" />
<service
android:name="org.altbeacon.beacon.service.BeaconService"
android:exported="false" />
-->
<service android:name=".BeaconService" >
</service>
<service
android:name="org.altbeacon.beacon.BeaconIntentProcessor"
android:enabled="true" >
</service>
</application>`
540 x 960 devices access drawable-hdpi values-hdpi folders.
please update your hdpi folder and check.
or u shud create layout res/layout-w540dp-h960dp/layout.xml for specific size device,
And what about sdk version? try to add this into your manifest:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
Related
I have published my app on the google playstore with the tags specifying the compatibility for larger screen devices
<?xml version="1.0" encoding="utf-8"?>
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme" >
<activity
android:name=".SplashScreen"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".LoginActivity"
android:screenOrientation="portrait" />
<activity
android:name=".StatisticActivity"
android:label="Statistiques"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name=".AboutActivity"
android:label="#string/title_activity_about"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name=".LegalActivity"
android:label="#string/title_activity_legal"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name=".PalmaresActivity"
android:label="#string/title_activity_palmares"
android:screenOrientation="portrait"
android:theme="#style/AppTheme.NoActionBar" />
<activity
android:name=".SettingsActivity"
android:label="#string/title_activity_settings"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".FacebookActivity"
android:label="#string/title_activity_facebook"
android:screenOrientation="portrait" />
<activity
android:name=".Main3Activity"
android:label="#string/title_activity_main3"
android:theme="#style/AppTheme.NoActionBar" >
</activity>
</application>
But tablets are still not able to find the app on the playstore and when you send a link to the tablet to download the app, the playstore says it is not compatible
Do the tablets have GSM? I think the problem is this :
<uses-permission android:name="android.permission.SEND_SMS" />
this will depend on feature android.hardware.telephony - so you need to set this to optional
I did many things to try and make my app compatible with tablets but nothing works. Here is what i tried:
I have 5 folders drawable(ldpi,mdpi,hdpi,xhdpi,xxhdpi) and every folder contains the same images with different size.
I have 3 layouts folders (small, medium, large) and everyone contain the same xmls
I added this code and made anable the telephony which my app uses:
<uses-feature
android:name="android.hardware.telephony"
android:required="true" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.front"
android:required="false" />
Also added this code for supported screens:
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
I also have min sdk to 8.
What am really confused about is that i have an app already in store that doesnt use any of these and its min sdk is 8 and it says its compatible with tablets. It only has tha drawable folders, the layout folders and in this app i also have outside the /res folder, image folders like Images-ldpi, images-hdpi etc with the same images that i have in drawable folders.
By google what ive done to the first app should have worked by now but it doesnt.
My Manifest of the app that doesnt work on tablets:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp"
android:versionCode="6"
android:versionName="1.0.6" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-feature
android:name="android.hardware.telephony"
android:required="true" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.front"
android:required="false" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<application
android:allowBackup="true"
android:icon="#drawable/olympialogo"
android:launchMode="singleTop"
android:logo="#drawable/olympialogo"
android:theme="#style/AppTheme" >
<receiver
android:name="com.myapp.BootCompleted"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service android:name="com.myapp.BackgroundActivity" />
<receiver android:name="com.myapp.SMSreceiver" >
<intent-filter>
<action android:name="android.provider.telephony.SMS_RECEIVED" >
</action>
</intent-filter>
</receiver>
<activity
android:name="com.myapp.Splash"
android:label="#string/title_activity_splash"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait"
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:name="com.myapp.MainActivity"
android:label="#string/app_name"
android:screenOrientation="sensorPortrait" >
<intent-filter>
<action android:name="splashscreen" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.myapp.NumbersActivity"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait" >
</activity>
<activity
android:name="com.myapp.CodesActivity"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait" >
</activity>
<activity
android:name="com.myapp.SendCode"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait" >
</activity>
<activity
android:name="com.myapp.SettingsActivity"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait" >
</activity>
<activity
android:name="com.myapp.AllMessages"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait" >
</activity>
<activity
android:name="com.myapp.ButtonsActivity"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait" >
</activity>
<activity
android:name="com.myapp.OutputActivity"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait" >
</activity>
<activity
android:name="com.myapp.AboutActivity"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait" >
</activity>
<activity
android:name="com.myapp.Help"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait" >
</activity>
<activity
android:name="com.myapp.TechInfo"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait" >
</activity>
</application>
</manifest>
And this is the manifest of the app that is tablet compatible but has no settings at all in manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="lol.loltimers"
android:versionCode="3"
android:versionName="1.3" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:icon="#drawable/lolicon"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="#string/activity_main"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".TimersActivity"
android:label="#string/activity_timers"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.loltimers.MainActivity" />
</activity>
<activity
android:name=".ThreeTimersActivity"
android:label="#string/activity_three_timers"
android:screenOrientation="portrait" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.loltimers.MainActivity" />
</activity>
</application>
</manifest>
u need to make different folder in drawable
for tab you have to make as pet tabs conflagration
drawable-large-mdpi //for 600x1024 mdpi tab
drawable-large-hdpi // for hdpi tab
drawable-large-ldpi //for xhdpi tab
and then make change in dimension files
values-sw600dp // for 7inch tab
values-sw800dp // for 8 inch tab
if u have special layout requirement then u need to make a different layout
layout-large
layout-xlarge
check this link
http://android-developers.blogspot.in/2011/07/new-tools-for-managing-screen-sizes.html
You need to set
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
and check at runtime whether the device has messaging facility or not.
We published the app to Google PlayStore, but it does not seem to show on the PlayStore in latest available version of android (Kit Kat versions 4.4.2-4.4.3 ) on Samsung Galaxy4, HTC One (Model M7 2013) and Google Nexus tablet. However the app is visible on Android phones running Jelly Bean (android version 4.3.1). Here is the entire manifest file.
----------
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxx.yyyy"
android:versionCode="10" android:versionName="2.0">
<uses-sdk android:minSdkVersion="10"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<application
android:icon="#drawable/ic_launcher"
android:debuggable="false"
android:label="#string/app_name" android:name="xxxApp">
<activity
android:label="xxxx"
android:theme="#android:style/Theme.Light"
android:name=".xxxActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".favorites"
android:label="Favorites">
</activity>
<activity android:name=".pin"
android:label="Pin">
</activity>
<activity android:name=".registration"
android:label="Registration Form">
</activity>
<activity android:name=".divisions"
android:label="Promotions">
</activity>
<activity android:name=".config"
android:label="Settings">
</activity>
<activity android:name=".resultsearch"
android:label="Result">
</activity>
<activity android:name=".detailstore"
android:label="Info">
</activity>
</application>
</manifest>
My app doesn't support a specific android device (Samsung Galaxy Tab 3 10.1 P5210), though it supports other 10 inch tablets. I am clueless as to why this is happening. What could be the reason?
The client has the above mentioned tablet and my app doesn't get listed on his store.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app"
android:versionCode="8"
android:versionName="1.7" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<permission
android:name="com.example.app.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.app.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="com.android.vending.BILLING" />
<!-- Permissions for GCM -->
<permission
android:name="com.example.app.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.app.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="#drawable/app_logo"
android:label="#string/app_name"
android:theme="#style/Theme.AppCompat.Light" >
<uses-library android:name="com.google.android.maps" />
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="XYZ" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="#string/app_id" />
<!-- Services and receivers for GCM -->
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.example.app" />
</intent-filter>
</receiver>
<receiver
android:name="com.example.app.FFHBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="zecross.ffh.broadcastReceiver" />
</intent-filter>
</receiver>
<receiver android:name="com.example.app.NetworkStateChangeListener" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<!-- <action android:name="android.net.wifi.WIFI_STATE_CHANGED" /> -->
</intent-filter>
</receiver>
<service android:name="com.example.app.GCMIntentService" />
<activity
android:name="com.example.app.MainActivity"
android:label="#string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.app.SwipingTaskDetails_Activity"
android:label="#string/title_activity_task_details"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.PostTask"
android:label="#string/title_activity_task_posttask"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.facebook.LoginActivity"
android:label="#string/app_name"
android:screenOrientation="portrait" />
<activity
android:name="com.example.app.TasksForHire_Activity"
android:alwaysRetainTaskState="True"
android:label="#string/title_activity_tasks_for_hire"
android:screenOrientation="portrait" />
<activity
android:name="com.example.app.SideMenu"
android:label="#string/app_name"
android:noHistory="true"
android:screenOrientation="portrait"
android:theme="#style/TranslucentActionBar" />
<activity
android:name="com.example.app.MyTasks_Activity"
android:label="#string/title_activity_my_tasks"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.SingleTaskDetails_Activity"
android:label="#string/title_activity_task_details"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.Filter_Activity"
android:label="#string/title_activity_filter"
android:screenOrientation="portrait"
android:theme="#style/TranslucentActionBar"
android:windowSoftInputMode="adjustPan|stateHidden" >
</activity>
<activity
android:name="com.example.app.TasksForMe_Activity"
android:label="#string/title_activity_tasks_for_me"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.TaskDiscuss_Activity"
android:label="#string/title_activity_task_discuss"
android:screenOrientation="portrait" />
<activity
android:name="com.example.app.Errand"
android:label="#string/title_activity_task_errand"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.example.app.Sitter"
android:label="#string/title_activity_task_sitter"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.example.app.AdviceLessonsTutor"
android:label="#string/title_activity_task_tutor"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.example.app.Handyman"
android:label="#string/title_activity_task_handyman"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.example.app.Cleaning"
android:label="#string/title_activity_task_cleaning"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.example.app.VirtualTask"
android:label="#string/title_activity_task_virtual_task"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.example.app.AnythingGoes"
android:label="#string/title_activity_task_anything_goes"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.example.app.ItemsAndServicesForSale"
android:label="#string/title_activity_task_items_sale"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.example.app.MyTaskInteraction_Activity"
android:label="#string/title_activity_my_task_interaction"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.LocateVenueCE"
android:label="#string/title_activity_locate_venue"
android:noHistory="true"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.LocationFilter"
android:label="#string/title_activity_location_filter"
android:screenOrientation="portrait"
android:theme="#style/TranslucentActionBar"
android:windowSoftInputMode="adjustPan|stateHidden" >
</activity>
<activity
android:name="com.example.app.SocialActivity"
android:label="#string/title_activity_social"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" >
</activity>
<activity
android:name="com.example.app.ContactsList"
android:label="#string/title_activity_phone_contact_list"
android:noHistory="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan|stateHidden" >
</activity>
<activity
android:name="com.example.app.Chat_Activity"
android:label="#string/title_activity_chat_activity"
android:noHistory="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden" >
</activity>
<activity
android:name="com.example.app.UserFBProfile"
android:label="#string/title_activity_user_fbprofile"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.MyAccount"
android:label="#string/title_activity_my_account"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.NotificationSettings"
android:label="#string/title_activity_notification_settings"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.Preferences"
android:label="#string/title_activity_preferences"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.ActivityNotifications"
android:label="#string/title_activity_notifications"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.Notifications_Activity"
android:label="#string/title_activity_notifications"
android:noHistory="true"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.NoInternetActivity"
android:label="#string/title_activity_no_internet"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:theme="#style/TranslucentActionBar" >
</activity>
<activity
android:name="com.example.app.InAppPurchases"
android:label="#string/title_activity_in_app_purchases"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.example.app.Blocked_Activity"
android:label="#string/title_activity_blocked"
android:screenOrientation="portrait" />
<activity
android:name="com.example.app.SendFeedback"
android:label="#string/title_activity_send_feedback"
android:screenOrientation="portrait" />
<activity
android:name="com.example.app.My_Ratings"
android:label="#string/title_activity_my_ratings"
android:screenOrientation="portrait" />
</application>
</manifest>
In your manifest you are specifying that your app requires openGL ES 2.0:
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
Hence it will run only on devices that do.
It's the only requirement besides the Android version, therefore I guess your Samsung Galaxy Tab 3 doesn't.
Besides, you might want to change your package name from com.example.app to something else.
The problem was with the Camera Permission. When I removed that permission, my client's tab began supporting the app. But I still find it strange since the tab had both front and rear camera.
Try adding back the camera permission as you need it and specify the allowed screen sizes on the manifest. I reccomend you to add this code under uses-permissions tag for example...
<supports-screens
android:anyDensity="true"
android:resizeable="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
android:largestWidthLimitDp="2560"
android:compatibleWidthLimitDp="2560" />
Hope it helps!
I have an app on Android Market that should run on everything >= Android 1.5. When testing this indeed seems to work, but I get reports from frustrated would be users that they are not allowed to install it due to compatibility issues. Two such are HTC Hero running Android 2.1 and HTC Wildfire (version unknown).
My entire manifest is below (As I don't know what's wrong, I might remove something important) - as I see it, this is the only thing Android Market looks to for compatibility information. Am I somehow excluding certain devices?
<application android:icon="#drawable/icon" android:label="#string/app_name" android:theme="#android:style/Theme.NoTitleBar" android:debuggable="true">
<activity android:name=".ShowStreams" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
<activity android:name=".menu.Settings" />
<activity android:name=".ClearCache"></activity>
<activity android:name=".settings.ManageFeeds"></activity>
<activity android:name=".settings.DirectoryBrowser"></activity>
<activity android:name=".settings.SourceSelector"></activity>
<activity android:name=".settings.FlickrBrowser"></activity>
<activity android:name=".settings.PicasaBrowser"></activity>
<activity android:name=".parser.facebook.FacebookAuth">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="floatingimage"/>
</intent-filter>
</activity>
<activity android:name=".settings.FacebookBrowser">
</activity>
<activity android:name=".parser.facebook.WebAuth"></activity>
<activity android:name=".parser.facebook.FacebookAlbumBrowser"></activity>
<activity android:name=".parser.facebook.FacebookFriendsBrowser"></activity>
<activity android:name=".parser.facebook.FacebookFriendView"></activity>
<activity android:name=".flickr.WebAuth"></activity>
<activity android:name=".parser.flickr.FlickrAlbumBrowser"></activity>
<activity android:name=".parser.picasa.PicasaWebAuth"></activity>
<activity android:name=".parser.picasa.PicasaAlbumBrowser"></activity>
<activity android:name=".parser.picasa.PicasaUserView"></activity>
<activity android:name=".settings.About" android:theme="#android:style/Theme.Dialog"></activity>
<activity android:name=".menu.WallpaperSettings" android:exported="true" />
<activity android:name=".menu.ApplicationFeedManagerLauncher"></activity>
<activity android:name=".menu.WallpaperFeedManagerLauncher"></activity>
<service android:name="Wallpaper"
android:label="Floating Image"
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/wallpaper" />
</service>
</application>
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4" />
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.BIND_WALLPAPER"></uses-permission>
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.software.live_wallpaper" />
<supports-screens
android:largeScreens="true"
android:anyDensity="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
android:resizeable="true" />
</manifest>
After some research, and also asking at #android-dev I found that the problem was with the line:
<uses-feature android:name="android.software.live_wallpaper" />
This is apparently a hard requirement for the app, and not necessary for live wallpaper functionality.
I believe the limiting factor might be the following permission:
<uses-permission android:name="android.permission.BIND_WALLPAPER"></uses-permission>
According to the following page in the android docs, this was introduced in api level 8. Is it possible that the unsupported permission is being filtered out for devices running sdk at api level 7?
http://developer.android.com/reference/android/Manifest.permission.html#BIND_WALLPAPER