I did a quick stackoverflow search and discovered that other native Android developers are running into this issue too. It’s too bad that you can’t always rely on this API.
The only possible work-around that I can think of on our end is to validate the received DPI by comparing it against its assigned mdpi, hdpi, or xhdpi density, which are hardcoded in Android to about ~160dpi, ~240dpi, and ~320dpi respectively. If the manufacturer assigned DPI is too far off, then I’ll have to use the mdpi, hdpi, or xhdpi values instead. It would be less accurate, but hopefully closer to the actual screen DPI.
Our main intent with providing the app window’s physical size in inches was so that you can determine at runtime if the display was big enough to show a tablet-sized or phone-sized user interface. Like what iOS developers do between iPhone and iPad. Hopefully these values are close enough to the physical size that you can still achieve this.
Anyways, that’s my 2 cents. I hope this helps.


