I'm developing an app that's intended for high-end devices only. It already only supports API 17+ but I've noticed some older devices that run API 17 that I'd like to exclude. My question is:
What's the best way to filter out older devices that still run a relatively new Android version?
I'd like to avoid manually excluding specific devices in Google Play.
Filtering based on screen density
One thing that I'd certainly like to do is filter on screen density (I'd like to support only hdpi and higher). I've read the compatible-screens article but I don't really like the solution presented there because:
- According to the article: "You should use it only as a last resort, when the application absolutely does not work with specific screen configurations."
- I'll get a large list of combinations in my manifest (if I support hdpi, xhdpi, xxhdpi and xxxhdpi with screen sizes medium, large and xlarge I'll already have 12 combinations).
- What if a new screen density (e.g. xxxxhdpi) or a new screen size (e.g. xxlarge) is added? To support those I'd have to update my manifest every time a new bucket is added.
It seems strange to me that I can't just specify that I want to support hdpi and higher in a single line in the manifest.
Filtering based on device features
I've also considered filtering on some feature that only high-end devices have, so I read the uses-feature article. However, it seems that I can only filter on things like bluetooth, camera and wi-fi and not on anything more indicative of a high-end device like hardware acceleration.