The play store is showing that my app is not compatible with the Nexus 7 (older model with only front-facing camera, ME370T). My app does require a camera but can use the front-facing camera. I tried to take this into account in my Manifest by specifying that any camera could be used (not just the back facing camera):
<uses-feature android:name="android.hardware.camera.any" />
Otherwise, I have no idea why it's not able to run on the Nexus 7. Here are my permissions:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-feature android:name="android.hardware.camera.any" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
Any ideas why I can't install the app?
It seems like the app store may ignore the "any" specification for uses-feature. I changed my camera requirement to
<uses-feature android:name="android.hardware.camera" android:required="false" />
and it seems like it's supported now.
Related
We recently released an application update on the Google Play Store.
Now some tablets that previously could download it can no longer.
As you can see in the gradle the minimum version is Android 8.
defaultConfig {
applicationId "com.myapp"
minSdkVersion 26 //Android 8
targetSdkVersion 29 //Android 10
multiDexEnabled true
versionCode 106
versionName "7.2"
}
Here is what we are asking for in the manifest
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<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_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.NFC_TRANSACTION_EVENT" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-feature android:name="android.hardware.camera" android:required="true" />
<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
<uses-feature android:name="android.hardware.nfc" android:required="false" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Our customers' table is Samsung Galaxy Tab (10.1 "2019) but by analyzing the list of devices that we support and do not support in the catalog of devices on Google Play Console, we have noticed that many tablets are excluded.
Our customers' table is Samsung Galaxy Tab (10.1 "2019) but by analyzing the list of devices that we support and do not support in the catalog of devices on Google Play Console, we have noticed that many tablets are excluded.
Unfortunately our tablet is not present in the catalog so we cannot get more information.
Tablet information:
Android 9
DISPLAY 10,1" 1200 X 1920 PX
FOTOCAMERA 8 MPX Ƒ/2.0
CPU OCTA 1.8 GHZ
RAM 3 GB
The problem was due to the following line of code:
<uses-feature android:name="android.hardware.camera" android:required="true" />
Even if the device in question has the camera module (actually who from Android 8 onwards does not have a camera module?) The Google Play Store does not think so.
As advised by Shawn Hazen the problem was resolved by bringing the value to false.
So I encountered a problem with my app on the google play store. My app is designed for both phone and tablet but it appears that it is only designed for phones according to the google play store. I thought I had fixed it by setting telephony to false but that didn't work. Before I submit an alpha version 1.0.1, I wanted to make sure these parameters are right... I just started Android 1 month ago so I am unfamiliar with the process. Any help would be great!
I have these permissions:
<!--
Internet Services
-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!--
Location Services
-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--
Parse Services
-->
<permission
android:name="com.newsensor.electro_harmonix.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.newsensor.electro_harmonix.permission.C2D_MESSAGE" />
<!--
Phone Services
-->
<uses-permission android:name="android.permission.CALL_PHONE" />
I am going to implement these features:
<uses-feature android:name="android.hardware.wifi"
android:required="false"/>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<uses-feature android:name="android.hardware.location"
android:required="false"/>
<uses-feature android:name="android.hardware.location.network"
android:required="false"/>
<uses-feature android:name="android.hardware.location.gps"
android:required="false"/>
<uses-feature
android:name="android.hardware.telephony"
android:required="false">
</uses-feature>
I have also included these supports:
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:xlargeScreens="true"
android:smallScreens="true" />
EDIT: So I uploaded it and tested it as a beta version just now. It downloaded on my tablet but when I view the app in "my apps" in the google play store, it still says "Designed for phones". Is this because I have to push the app into production?
Looks like that permissions are good. But can you check what sdkversion you set for minSdkVersion and targetSdkVersion. If it is less then or equal to '10'. Then i guess that will be creating a problem for not supporting the Tablets. Earlier there was no support for large-screens.
I just upload my app and I found that in almost 60% of the devices isn't compatible (Google Play, compatibly devices).
I have this on my manifest
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="false" />
<uses-feature android:name="android.hardware.camera" />
I try it on Nexus 7 (2012) and LG Optimus and none are compatible any ideas?
Best,
If you specify <uses-feature android:name="android.hardware.camera" /> then only devices with rear facing cameras will be included.
The Nexus 7 (2012) will not be compatible as it only has a front facing camera.
Android 4.2 added android.hardware.camera.any, which will allow devices that have a front or back facing camera.
See here for more info:
http://developer.android.com/guide/topics/manifest/uses-feature-element.html#hw-features
Also, if having a camera isn't mandatory for your app you can specify android:required="false" for the uses-feature. If you don't specify this then the default is android:required="true" and any device which does not have the feature will be deemed incompatible.
I have a serious problem concerning the compatibility of my app with some devices.
At the moment these are my configurations and permissions:
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<supports-screens android:anyDensity="true" />
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
This would in my opinion mean that my application is compatible with every smartphone (not tablet) with Android 4.0.x or higher. Is that correct?
Because I recognized that it is not compatible with Samsung Galaxy S II with 4.1.1 which I simulated with Genmyotion. Also our customer described this beviour on a real device. Does anyone of you know why this problem could occur?
I think I have found the problem by myself (see android market says no device compatible?)
I have included permission
<uses-permission android:name="android.permission.CAMERA"/>
which by default includes auto focus feature. So I have to add the following in my manifest to disable it:
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
Thanks to chrish
I have just released a app on Google Play. It shows unsupported 808 devices out of which some are listed below for reference
MICROMAX
A44– tinnoes13_s7050 A45– tinnoes73_s8030_2g P300– crane-M701C_mmx A73– A73 P275– P275
Also some testing on friends devices I realize that Android 4.0 devices, dont show the app on Google Play.
My Manifest file has the following. What am I missing here ? Is there a way to support "all" devices?
android:versionCode="10"
android:versionName="1.18" >
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<!-- <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> -->
<uses-sdk
android:maxSdkVersion="16"
android:minSdkVersion="8"
android:targetSdkVersion="16" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
I haven't mentioned the app since I dont want to violate SO's rules on self app promotion. If needed, I can mention it on a comment. Just request for it.
Don't use the maxSdkVersion attribute:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="16" />
Any device with version > 16 will not show the app, f.e. devices running Android 4.2 (version 17).
Also, since you're requesting the android.permission.CALL_PHONE permission, the app will only be shown to devices that have phone capability. If your app can also run on devices that don't have phone capability, make it not required:
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Same thing with android.permission.ACCESS_FINE_LOCATION, the app will only be shown for devices that have GPS, unless you make it not required:
<uses-feature android:name="android.hardware.location.gps" android:required="false" />
See http://developer.android.com/guide/topics/manifest/uses-feature-element.html#permissions for more info.