Tata 1mg Engineering
Published in

Tata 1mg Engineering

Is your app not listed in Google Play for some of the tablet devices?🤔

1mg on Google Play

Every time we publish our app on the Google Play store, we want users to be able to find it and download. But what happens when the app we have listed is not showing up?😳

Recently, a similar issue happened with 1mg’s app. On one of the Lenovo Tablet devices, we got this message-

App Incompatible with your device

Our app was not getting listed on Play store even though the debug app was running perfectly fine on that device. We were quite sure that there is something wrong with the manifest file.

We checked minSdkVersion, language support, country region etc.

After some research, we found that the issue was in our permissions. For example, if the app uses RECEIVE_SMS and READ_PHONE_STATE, then Google Play uses it to filter out devices that can’t do those things (tablets) because it assumes that your app needs those permissions in order to work.

According to the android developer site:

To prevent those apps from being made available unintentionally, Google Play assumes that certain hardware-related permissions indicate that the underlying hardware features are required by default. For instance, applications that use Bluetooth must request the BLUETOOTH permission in an element — for legacy apps, Google Play assumes that the permission declaration means that the underlying android.hardware.bluetooth feature is required by the application and sets up filtering based on that feature.

Also, look at this:

Telephony CALL_PHONE android.hardware.telephony CALL_PRIVILEGED android.hardware.telephony MODIFY_PHONE_STATE android.hardware.telephony PROCESS_OUTGOING_CALLS android.hardware.telephony READ_SMS android.hardware.telephony RECEIVE_SMS android.hardware.telephony RECEIVE_MMS android.hardware.telephony RECEIVE_WAP_PUSH android.hardware.telephony SEND_SMS android.hardware.telephony WRITE_APN_SETTINGS android.hardware.telephony WRITE_SMS android.hardware.telephony

We were having RECEIVE_SMS and READ_PHONE_STATE so we automatically had android.hardware.telephony. We had to fix this by doing

<uses-feature android:name="android.hardware.telephony" android:required="false" />

All of this is explained in more depth .

Please feel free to share your views and feedback in the comments section below.

If you liked this blog, hit the 👏 . Stay tuned for the next one!

India's most trusted consumer health platform.