Como obter o tamanho físico da tela (por exemplo, em polegadas)?

Eu estou tentando descobrir como obter as dimensões físicas da tela de um dispositivo via JavaScript. Até agora, minha conclusão é que atualmente é impossível, mas espero que alguém possa provar que estou errado :).

Até agora, tentei obter essa informação encontrando o DPI do dispositivo, mas parece que não há como obter o valor correto aqui, como todos os dispositivos que testei (alguns dispositivos HDPI e XHDPI Android, um iPhone4S, um iPad 2 e um iPad 3) relatório 96DPI.

O primeiro método de obter o DPI que experimentei é aquele que você pode encontrar em toda a internet: crie umdiv com uma largura CSS de1in, obtenha o seuclientWidth ouoffsetWidth e há o seu DPI. Não funciona, todos os dispositivos relatam 96.

O segundo método foi usar oconsulta de mídia de resolução, algo ao longo das linhas de:

for (var i=90; i < 400; i++) {
    if (matchMedia('(resolution: ' + i + 'dpi)').matches) {
       return i;
    }
}

Eu pensei que era uma solução inteligente, mas infelizmente isso retorna 96 também.

Existe alguma coisa que eu possa tentar?

questionAnswers(2)

yourAnswerToTheQuestion