Como detectar se um aplicativo está sendo executado em um dispositivo móvel ou na área de trabalho

2

Estou usando o Ubuntu SDK para desenvolver um aplicativo QML que seja executado tanto em computadores quanto em dispositivos móveis. Dependendo de onde ele está sendo executado na área de trabalho ou em um dispositivo, determinados comportamentos devem ser diferentes.

Qual é a maneira recomendada de detectar programaticamente se um aplicativo está sendo executado na área de trabalho ou em um dispositivo móvel?

    
por David Planella 09.06.2013 / 14:44

2 respostas

2

No momento, a única maneira de detectá-lo é verificando a largura e a altura do aplicativo. Por exemplo, supondo que o widthxheight do telefone seja 40x71 GU (retrato padrão), o tablet é 160x100 GU (paisagem padrão), qualquer coisa acima de 160x100 GU pode ser considerada como desktop.

Há planos para fornecer sinalizadores para identificar, por exemplo, se há um teclado HW conectado, dispositivo apontador, ASO, mas esses sinalizadores não devem ser usados sozinhos para identificar um fator de forma de área de trabalho, pois você pode anexar teclado de mouse / HW ao telefone / tablet por bluetooth.

    
por zsombi 14.06.2013 / 12:16
0

@zsombi então algo assim?

MainView {
    id: mainView
    objectName: "mainView"
    applicationName: "myapp"
    automaticOrientation: true
    width:  units.gu(40)
    height: units.gu(71)

    //detect whether an app is running on a mobile device or on the desktop, base on screen-size
    property bool desktop: false;
    function sizeChanged()
    {
        if(mainView.width > units.gu(160) && mainView.height < units.gu(100))
           desktop = true;
        else
            desktop = false;
    }
    onWidthChanged: {
        sizeChanged();
    }
    onHeightChanged: {
        sizeChanged();
    }
}

Então você pode fazer um

if(desktop) 
    //Desktop  
else 
    //mobil 
    
por Voidcode 14.08.2013 / 13:26