Reputation: 2737
My app is in BETA TESTING. It's compatible with iBall tablet (tablet has sim card capability) and with Nexus5 running Marshmallow, but isn't compatible with Nexus7 running Marshmallow (and also with Nexus10. I didn't check it yet). I am not sure which permission is causing this. Or is it because of targetSdkVersion? (I dont think targetSdkVersion causes this. Please correct me if I am wrong)
Manifest:
<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="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-feature android:name="android.permission.RECEIVE_SMS" android:required="false" />
<uses-feature android:name="android.permission.READ_SMS" android:required="false" />
<uses-feature android:name="android.permission.READ_PHONE_STATE" android:required="false" />
<permission
android:name="in.company.company.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="in.company.company.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<supports-screens
android:anyDensity="true"
android:xlargeScreens="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
build.gradle:
compileSdkVersion 23
buildToolsVersion '23.0.1'
defaultConfig {
applicationId "in.company.company"
minSdkVersion 16
targetSdkVersion 21
versionCode 8
versionName "1.7"
multiDexEnabled true
}
Also, I didn't upload any Tablet screenshots on developer console. For now, the app is designed for phone, but I want to make it available for all android devices out there. What I need to look into?
Thanks in advance.
Upvotes: 9
Views: 646
Reputation: 4324
May be your Tablet doesn't support some features like phone. That's why its conflicting with permissions. Its done like
<!-- features -->
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Other possible features are :
android.hardware.camera
android.hardware.camera.autofocus
android.hardware.location.gps
android.hardware.location
android.hardware.location.network
You can check all the Features Required in your application.
Upvotes: 4
Reputation: 18978
just add this requiresSmallestWidthDp
in supports-screens
element.
For example, a typical handset screen has a smallestWidth of 320dp, a 7" tablet has a smallestWidth of 600dp, and a 10" tablet has a smallestWidth of 720dp. These values are generally the smallestWidth because they are the shortest dimension of the screen's available space.
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:requiresSmallestWidthDp="720"
android:resizeable="true"
android:smallScreens="true"
android:xlargeScreens="true" />
read more about support-screen
one more thing if you are compile your code with API 23 then why use targetSdkVersion 21 change it to 23.(don't forgot to implement permission model for your app when target 23 API)
Notes: if you are going to make app available for all android devices then you must have to use this supports-screens
elements else Google play show you "app is not compatible with this device" or similar message. check some old answer which is related to tablets screen
Upvotes: 4