I'm working on app that should be installed only on phones and not tablets.
I want to ask, how can I restrict to install only on phones?
I was reading this article, but it seems pretty old to me: Distributing to Specific Screens
They are not talking about xxhdpi or xxxhdpi resolutions at all and devices are divided by screen size. It could work few years ago, but now? For example Nexus 6 has 6" screen size - it can be considered almost like tablet.
Do you know any working solution?
To install app if we are using adb install command , it's not possible to restict app installation only to tablets or phones. Also if we give tag in menifest it's only applicable for the Google Play store filter, to check this you can try following code, put it into your menifest and try to install it in 7 inch tablet, it will allow,
By using this code Google play store filters and restrict while installing only, but not in other cases as sharing apk, or installing in emulator.
So, to restrict the app installation to certain device when you upload APK at market , you need to do this Applications->select your application->APK-> Supported devices | Excluded devices
Just follow the doc Declaring an App is Only for Handsets and do not use the example from the accepted answer because of: (from FilteringTabletApps)