We've upgraded yesterday our App (easy.go) on the Android Market and after that we have got several messages from HTC Tattoo and Sony Ericsson XPeria mini users, that they can't see application on Android Market.
We are not you using Copy Protection when uploading to the market, so I guess, it couldn't be a problem.
The first assumption is that the problem was beacause of small screens. I took a look in manifest.xml. There is written:
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>
And here are all permissions:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-sdk android:minSdkVersion="3"/>
Any suggestions?!
There are some big images with resolution 320x480 and no alternatives for them in resolution 240x320. Could it be the problem?!
Is there some preview before upgrading an app to know for which devices it will be invisible on the market?
I guess, I know now the answer:
http://developer.android.com/guide/appendix/market-filters.html#manifest-filters
If I understood it right
Example 1 The manifest declares <uses-sdk android:minSdkVersion="3">
and does not does not include a
<supports-screens> element. Result:
Android Market will not show the app
to a user of a small-screen device,
but will show it to users of normal
and large-screen devices, users,
unless other filters apply.
Example 2 The manifest declares
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"> and does
not include a <supports-screens>
element. Result: Android Market will
show the app to users on all devices,
unless other filters apply.
then <uses-sdk android:minSdkVersion="3"/> should be replaced with <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>
Have a look at market filters rules if it's not already done, maybe it could help you:
http://developer.android.com/guide/appendix/market-filters.html
Related
I'm trying to publish an app to Play Store, but when I upload the app, the Nexus 7 and other devices are shown as not compatible. The app should be restricted to tablets, as its interface is not not for phones. I didn't set requirements for hardware not present in Nexus 7 and I support all displays from 600dp up.
I found similar questions, but all related to camera or phone permissions... any ideas?
This is my manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="it.mypackage.stuff"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="18" />
<supports-screens android:smallScreens="false"
android:normalScreens="false"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-feature android:name="android.hardware.telephony" android:required="false"></uses-feature>
<application> Stuff.... </application>
</manifest>
I found the problem and solved it. I felt very stupid when I realized the problem was I weren't incrementing the "versionCode" field in the AndroidManifest.xml.
The Android Developer Console shows a strange behaviour: if you upload an apk to an unpublished application without incrementing the versionCode, the apk isn't replaced, and no error is shown. So the apk remains the first one uploaded, and all the changes made in the new apk are lost.
I have developed one android application, its available in Google Play Store for all the devices post 2.2. But, while trying to download the application from Samsung Galaxy Star GT-S5282, which is having 4.1.2. we are getting this error this version is not compatible for this phone
manifest code:
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="16" />
Below Permission used:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
Please advice me on this Issue.
thanks in advance.
Maybe this is helping you Google Support Devices and I found another one who asked a similar question: Android Device not supported by app why?
I have developed my own app in android version 8(2.2) and published it in android market. When i tried to install it in my Samsung Galaxy pop (2.2.1) device from market. No compatible device is found. this message appears though i have specified
<supports-screens android:largeScreens="true"
android:smallScreens="true"
android:normalScreens="true"
android:anyDensity="true"
/>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE"/>
in my manifest file.
can anyone suggest me why android market filtering my app for Samsung Galaxy pop?. Please help me out. Thank you in advance
Finally i got the solution, It was Auto focus feature due to which Google play was filtering my app on Samsung galaxy mini (which doesn't support camera auto focus feature) from Google play.
I have included permission
<uses-permission android:name="android.permission.CAMERA"/>
which by default include auto focus feature true.
so i added following in my manifest file. and it worked for for me
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
Note : Google play doesn't show Your app on device instantly after uploading. it takes some time so don't panic as i did . if problem still persists clear the cache of Google play.
I'm having trouble getting my app to install on a tablet through the market. Note I'm not using Honeycomb as the app is primarily for a phone. Previousdly I was using level 7 but now changed it to level 10 (2.3.3) to support xlargeScreens. The app installs on my tablet via adb and works great but its not possible to install through the market.
I've read several posts on SO and thought my manifest is correct after adding the supports-screen property.
Here are the most important parts of my manifest:
<uses-sdk android:minSdkVersion="7" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<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.MODIFY_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Any idea where I'm going wrong?
Thanks in advance.
it's probably your android.permission.MODIFY_PHONE_STATE.
check this official issue that is specific to 2.3+
http://code.google.com/p/android/issues/detail?id=15031
The MODIFY_PHONE_STATE permission was marked as "for system use only" in Android 2.3.
While this was never intended for developers and publicly endorsed by Google, there are hundreds of apps in the marketplace using it. Unfortunately, a seemingly innocent checking by the Android folks has now crippled many popular apps for Android 2.3+.
This is an ENHANCEMENT request that you:
1. Restore the MODIFY_PHONE_STATE permission for Android 2.3.x
2. Create a proper Telephony API for Android 2.3+ (at which time you can remove the MODIFY_PHONE_STATE permission)
If the problem is related to MODIFY_PHONE_STATE
Maybe you can try:
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Never try this, but you can check.
By the way, here you have the information regarding Market-Filtering
Market Filtering
I wrote an application for Android and now one of the users reports that the application is incompatible with many phones. I think the requirements/permissions are not that exotic.
My manifest file has following code:
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>
<supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.VIBRATE"/>
Incompatible phones are shown in gray:
Market http://www.preston.be/market.png
Anyone an idea what's missing/wrong?
according to
android:minSdkVersion="3" android:maxSdkVersion="4"
you are supporting only devices with Android 1.5 and 1.6
most of the devices have a newer OS version like froyo 2.2
install the latest SDK then in your android proyect go to "Properties" -> "Android" and change the "Project Build Target", for example Android 2.2 , API level 8.
then change in your AndroidManifest.xml
android:minSdkVersion="3" android:maxSdkVersion="8"
then your app will be able to support more devices...
The problem is that with the SDK versions you're using, there's an implied CALL_PHONE permission (see here and here for more detailed explanations). You should be able to work around this by changing the targetSdkVersion as shown in the second link.
Here lies the problem <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4"/>.
You are targeting Android 1.6 handsets, there are less than 15 % handsets out there that have that version of Android. You should target the latest Android versions. Here is Android docs about api levels that will make this more useful for you.
Also read up what it says about versions here.
As #commonsware mentioned below, I misunderstood, this. My apologies.